Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Wiki Markup


*This guide assumes you are using Maven 2.0.4 or later ([http://maven.apache.org|download here])*

h1. Getting started

Before we get too far ahead, it is important to know some basics concepts of Maven. The most important thing to understand is that unlike Ant, Maven has no concept of procedural tasks that get run. Instead, Maven has a concept of a build _lifecycle_ in which plugins (somewhat similar to Ant asks) can attach to. When you execute a maven build, you specify a point in the lifecycle that you want the project built up to. The phase compile comes before test, and test comes  before package, and package comes before install.

h2. Installing

The _install_ phase simply means that maven should build up the project ("package"), and then install it to your local repository (found in ~/.m2/repository). There is can be used by any other maven project you build. To run a basic install, simply invoke:

{code}
> mvn install
{code}

That's it! Maven will download all dependencies it needs, run all unit tests, package up the jars, and then install the jars locally. You can also find the jars in the _target_ directories of each module. For example, *action/target/action-2.0-SNAPSHOT.jar* would be where the main jar is built.

{caution}Some dependencies, such as JavaMail and Activation, can't be downloaded automatically due to license restrictions. Fortunately, Maven gives you a nice error message showing you how to install these to your local repository. Simply download the required jar from Sun's website and then use the command supplied by the error message to install it. You can then try the build again.{caution}

h2. Other phases

There are other phases that can be useful when working with Maven. The *package* phase will just jar (or war) up the modules. The *test* phase will only run the unit tests. The *compile* phase will only build the source code (but not the test sources). And the *clean* phase will remove all artifacts, typically the entire _target_ directory.

h1. Build profiles

Now that you know the basics with the Maven build, there is a bit more to learn. M

h1. Building IDE project files


h1. Tips

 - mirror
 - having to run "mvn install" sometimes before the build works