Developing with Eclipse and Maven
Chapter 5. m2eclipse Preferences
The ability to adjust the Maven preferences and some Maven options
is an important aspect of developing with Maven and m2eclipse offers the
ability to tweak these items via the Maven preferences page inside of
Eclipse. Typically when using Maven on the command line, such preferences
and options are available from files in your
directory and as command line options. m2eclipse provides access to some
of the most important preferences and options from the Eclipse
IDE. Figure 5.1, “Maven Preferences for Eclipse” shows the Maven preferences
page in Eclipse:
The check boxes in the top section provide the ability to:
Run Maven in Offline mode, disabling any downloads from remote repositories
Enable Debug output in the Maven Console
Download Source jars for artifacts from remote Maven repositories
Download JavaDoc jars for artifacts from remote Maven repositories
Download and Update local indexes for remote repositories on startup
The next section offers a pop-up menu to select which goal you’d
like to be executed when a project is imported and when the source folders
for a given project are updated. The default goal is named
process-resources which copies and process the
resources for the project into the destination directory to make the
project ready for packaging. Customizing this list of goals can come in
handy if you need to run any custom goals which process resources or
generate supporting configuration.
If you need help selecting a goal, click the Figure 5.2, “Maven Goal Dialogs” shows the Goals dialog with a list of all the phases in the default Maven lifecycle.button to see the "Goals" dialog. The dialog on the left-hand side of
When you see the Goals dialog for the first time, there's a chance you might be overwhelmed by the number of goals it lists. There are literally hundreds of Maven plugins for everything from generating a database, to running integration tests, to performing static analysis, to generating web services with XFire. There are over two hundred plugins with selectable goals in the Goals dialog, the dialog on the right-hand side ofFigure 5.2, “Maven Goal Dialogs” shows the "Goals" dialog with the Tomcat Maven plugin's goals highlighted. You can always narrow the list of goals shown in this dialog by typing in some text to the search dialog, as you type in text, m2eclipse is going to narrow the list of available goals to goals which contain the text in the search field.
Another Maven preference page is the Maven Installations configuration page shown in Figure 5.3, “Maven Installations Preference Page”:
This page allows you to add other Maven installations to the Eclipse environment. If you want to use a different version of Maven with the m2eclipse plugin you can configure multiple installations of Maven from this configuration page, this is very similar to the ability to add more than one Java Virtual Machine to be run inside of Eclipse. An embedded version of the Maven known as the Maven Embedder is already specified. This is what is used to execute Maven inside of Eclipse. If you have another installation of Maven which you would like to use instead of the Maven Embedder, you can add another Maven runtime by clicking on the Figure 5.3, “Maven Installations Preference Page” shows a configuration page that lists the Maven Embedder, Maven 2.0.9, and an installation of Maven 2.1-SNAPSHOT.button.
The Installations configuration page also allows you to specify the
location of the global Maven settings file. If you do not specify the
location of this file on this configuration page, Maven will use the
default global settings file found in
conf/settings.xml of the selected Maven installation.
You can also customize the location of your user settings file from the
default location of
~/.m2/settings.xml, and you can
customize the location of your local Maven repository from the default
Also available in the Eclipse preferences is the ability to enable a decorator named the Maven Version Decorator. This preference provides a given project’s current version on the Eclipse Package Explorer and is shown in Figure 5.4, “Enabling the Maven Version Decorator”.
To enable this preference, simply check the Maven Version Decorator option that is highlighted in Figure 5.4, “Enabling the Maven Version Decorator”. If the Maven Version Decorator is not enabled, a project will only list it’s name and relative path in the Package Explorer as shown in Figure 5.5, “Package Explorer without Maven Version Decorator”:
Upon enabling the Maven Version Decorator, the project name will include the current project version as shown in Figure 5.6, “Package Explorer with Maven Version Decorator Enabled”:
This is a helpful feature that provides the project version at a glance instead of being required to open the POM to locate the version element.