Customizing Maven Project

Basic

The Project customizer is accessible from the popup menu of the project node. It's the last item in the popup, "Properties..."

It categorizes the content of the POM file and the project's properties into multiple subsections which should be self-descripting. The current implementation is able to edit properties and view POM file content.

The Resolve Values checkbox allows one to switch between 2 modes.

  • When the checkbox is unselected, all editable fields are editable and are displayed exactly as defined in the project files.

  • When resolving values, the fields are not editable but one can see to what values the properties definitions resolve in the current context of the project. If a value cannot be resolved, it still displayed in the unresolved state.

This feature can be used to examine and debug the project definitions.





Screenshot 1 Maven project customizer





Screenshot 2 Maven project customizer - Dependencies

The UI also shows what plugins are installed within the project's context. It tries to guess which plugins are used (based on used properties within the project scope) and allows one to view and change the plugin's setup.





Screenshot 3 Maven project customizer - Plugins

Definition layers

The properties can be defined in multiple files in maven.

  • There are the project.properties and build.properties files in the project folder.

  • There is the build.properties file in the user directory, which is capable of influencing behaviour of all projects.

  • Then there's project and build property files in the parent's project directory. (If the POM file defines the "extends" tag.)

To let the user know where the givem property is defined, the customizer places a coloured triangle icon next to all property definitions. By clicking the icon, one can move the property definition.

Note: By moving to the build property file in the user dir, one doesn't influence only the current project but all projects.



Screenshot 4 Changing location of property definition

Global execution options

To influence the execution of maven, you can define what command line switches are used when executing Maven. These are not project based, but global for use in the IDE, don't influence maven when used on the command-line.



Screenshot 5 Global Options

Maven Goals to IDE Mappings

Apart from changing standard maven properties, one can also redefine what common IDE building actions mean in the maven sense. So for your webapp you can make the IDE's Build action to deploy the built app to the server for testing.

These values are like common Maven project properties, which means you can put the definitions into cvs and let everyone build the project the same way. For detailed description of the properties, see page describing the properties definition in detail.



Screenshot 6 Changing goals definition