Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin
Warning
titleTHIS PAGE IS OUT OF DATE.

The information on this page is no longer accurate, as lcsim-based projects have switched to using maven 2.

While there are currently no equivalent instructions for maven 2, please refer to the lcsim-contrib project
in the SLAC CVS for an example of an m2 project that depends on lcsim.

Creating a Maven Project that Depends on org.lcsim

Overview

This tutorial shows how to create a Maven-based project that depends on org.lcsim, so that your code can seemlessly access this framework and all of its dependencies.

The Maven tool is used to build the org.lcsim software. It automates can be used as the build system for your project. It automates most of the low-level details of involving dependencies and building for Java projectscompiling. For instance, it can automatically download external JARs required by your project. The org.lcsim project uses this tool for its build system, as wellrequired jar files based on a repository URL. Additionally, it can build a complete project website including source code metrics, cross-reference, and JavaDocs.

Tip
titleSource Control

It is always a good idea to store your projects in a source control system, such as CVS. Contact your local system administrator for instructions on setting up a module for your project.

Example Maven Project

The SLAC LCD cvs contains a sample Maven project called ExampleMavenProject, which can be checked out with this command.

No Format

cvs -d :pserver:anonymous@cvs.freehep.org:/cvs/lcd co ExampleMavenProject

To build it from the command-line, assuming there is an sh shell available, e.g. on Linux, Cygwin, etc.

No Format

cd ExampleMavenProject
./build.sh

Or you can use Maven directly.

No Format

maven -Drun.install=$(pwd) -Dmaven.test.skip=true clean jar:install jas:install run:install

Now, test it by running the automatically generated script.

No Format

./bin/ExampleMavenProject

It should print this message.

...

your

...

project

...

.

Directory Setup

Create a directory for your new project and go into it.

No Format
mkdir ExampleProject
cd ExampleProject

...

No Format
mkdir -p test/org/lcsim

Build Files

The project's root directory needs to should contain three Maven configuration files.

  • project.xml - main configuration file, listing the project's core information and its dependencies
  • maven.xml - Maven settings, such as the default build target
  • project.properties - project properties file, including source repository locations, e.g. freehep.org

These files can be obtained from org.lcsim's root directory.

...

No Format
<dependency>
  <groupId>lcsim</groupId>
  <artifactId>lcsim</artifactId>
  <version>0.9</version>
  <url>http://www.lcsim.org</url>
</dependency>
Warning
titleorg.lcsim version

Maven requires a specific version tag for dependencies. This means that the version string needs to updated when a new org.lcsim release is made, or the older version will be used instead.

The org.lcsim JAR is not currently maintained as a downloadable dependency. Each project user needs to compile and build this program themselves in order to install it to the local repository.

Basic Build Command

The project can be built from the command line with this simple command.

...

Alternately, you can use the Netbeans IDE to build your Maven-based projects.

Run Plugin

The FreeHep Run Plugin can generate a run script for your project.

...

The command line syntax of the script is completely up to you.

JAS

JAS3 can be configured to automatically load your project's classes on startup.

...

The class should now be available using the File -> Load command within JAS3.

Build Script

A full build command for your project, incorporating all of the above features, would look something like this.

...