NOTE: This page contains drafts of user contributed FAQ entries. The content you see here might not be fully fool-proof or might not comply with the best practices promoted by Maven. What is only guaranteed is that they have worked once for some members. It is best to treat these items as "works in progress" until they have been reviewed and promoted to the main Maven documentation site.
Users may also list questions here that they would like answered. So this page can serve as a collection of questions that users would like answered. Please put unanswered questions at the bottom. Please follow the format that is being used because it will help in our automated exaction of material which can then be incorporated into the main site.
Why am I getting a "<plugin name> does not exist or no valid version" error?
This means that Maven is unable to access the required plugin from your local repository, and unable to access the official or 'central' Maven2 plugin repository.
You may troubleshoot the problem by performing the following actions:
- If you are behind a http proxy, please check the Maven2 proxy settings guide.
- If the plugin you seek cannot be redistributed freely then you may add it manually to your repository.
If the problem still persists you may seek help from the Maven user list, browse archived discussions, or log a ticket describing your problem if you think you have found a bug. Tickets could also be issued for feature enhancement requests, and other tasks.
How do I install a file in my local repository along with a generic Pom?
This solution requires at least 2.0.1-SNAPSHOT or above version of Maven 2. You may do this by typing this command (please take note that this is a single line only).
-Dpackaging=<packaging> (i.e. jar)
This command installs the jar in your local repository with the generated generic pom.
How do I install a file in my local repository along with my customed Pom?
The solution requires at least 2.0.1-SNAPSHOT or above version of Maven 2 and add the -DpomFile=<path-to-pom> parameter just like the sample below.
-Dpackaging=<packaging> (i.e. jar)
This command will install the file in your local repository along with your customed pom.
Are there any ways of including/excluding the other modules in the navigation menu in the parent site?
http://jira.codehaus.org/browse/MNG-661, provides a simple patch which provides parent and module links using the project URLs which as you
correctly point out only work when the site is deployed.
Where is the ______ plugin?
If you cannot find a certain plugin, you may want to take a look on the following sites.
Why are there no pre/post goals in Maven 2.x?
In Maven 1.x, pre/postGoals were used to inject custom behavior to the build process. This caused a problem, since declaring your code to be a preGoal of some other goal meant that you depended on that specific goal, rather than the work it did. It also caused confusion when trying to inject other behavior into a build that already had pre/postGoals attached: Where would the new behavior be injected?.
Pre- and post-goals in Maven 1.x were usually used to develop the concept of a workflow, or lifecycle, for the build, where x happened before y, which had to happen before the sources could be compiled. In Maven 2, we've incorporated this concept of a build lifecycle natively. The steps - or phases - in this lifecycle correspond to the types of actions that might occur in a build. Your plugin can declare which type of action it performs - or which phase it should bind to - and that will guarantee it is executed before the next action type. For example, if your plugin generates some source code, you might want it to bind to the "generate-sources" lifecycle phase, so it is guaranteed to run before the "compile" phase.
For more information, see:
How does Maven compare with Ivy?
For a comparison of Maven's features vs Ivy's you can refer to our feature comparison
How do I get the dependencies of a plug-in from within a Mojo?
How do I use SNAPSHOT versions of plug-ins?
The POM is meant to be current state, not history. We actually only record the versions in the repository, and if the SCM tag is populated in the <scm> section of the POM for each released version you can reconstruct the information.
There were other issues with putting history in the POM: forgetting to add it, getting the right level of information when you work on multiple branches, and similar things.