General

General
What is Maven?
Please see the Goals and Features documents.
Where do I get help on Maven?

This FAQ answers some frequent questions already, please read the Getting Started for a quick start guide.

The Reference section contain a comprehensive user guide and documentation about the various plugins that exist for maven. Furthermore there's a maven wiki. (Don't know what that is? Read What is wiki?)

If these resources don't help you with your problem, the Maven User List is a good source for help. Lots of problems have already been discussed there, you'll probably find a solution in the mailling list archive. Most of the maven developers are subscribed to the Maven User List.

Maven developers meet via IRC: irc.codehaus.org:6667, channel #maven But please don't ask for solutions to maven problems there, as maven user problems should be discussed at the mailing list for several good reasons (e.g. mail archive, more subscribers) and usually you get a quick answer on the mailing list.

Using Maven

Using Maven
Why do the unit tests fail under Java 1.4?
It is possible that the XML parser included with Ant is interfering with the XML parser included in Java 1.4. Please set the ${maven.junit.fork} property to yes.
Why does JavaDoc generation fail under Java 1.4?
This is a known problem and we are working to resolve the issue.
Why does change log ask me to check out the source code?
When you run the cvs change log report in maven, you may see an error occasionally, such as:

cvs [log aborted]: there is no version here; do 'cvs checkout' first

ChangeLog found: 5 entries

This is caused by the cvs log command finding a directory in it's repository that you don't have locally. Note: The directory may not appear on a checkout or update if it is empty in the repository. Please do a clean checkout of the code and retry the report.
I have problems generating the changelog report. Why?

When you run the cvs change log report in maven, the report hangs or the final output is blank.

This is typically caused by the cvs command not running correctly. The first port of call is to check maven.log, search the file for "SCM"

2003-02-26 06:42:04,975 INFO  org.apache.maven.changelog.AbstractChangeLogGenerator - SCM Working Directory: D:\Data\workspace\maven
2003-02-26 06:42:04,985 INFO  org.apache.maven.changelog.AbstractChangeLogGenerator - SCM Command Line[0]: cvs
2003-02-26 06:42:04,985 INFO  org.apache.maven.changelog.AbstractChangeLogGenerator - SCM Command Line[1]: -d
2003-02-26 06:42:04,985 INFO  org.apache.maven.changelog.AbstractChangeLogGenerator - SCM Command Line[2]: :pserver:[email protected]:/home/cvsroot
2003-02-26 06:42:04,985 INFO  org.apache.maven.changelog.AbstractChangeLogGenerator - SCM Command Line[3]: log
2003-02-26 06:42:04,985 INFO  org.apache.maven.changelog.AbstractChangeLogGenerator - SCM Command Line[4]: -d 2003-01-27
   
        

Try running the command that you find in the log file manually. The results typically speak for themselves.

How do I use Maven with xdoclet?
The xdoclet plugin is provided by the xdoclet developers. All questions about it should be directed to the xdoclet mailing lists.
Maven takes a long time to load. Is there anyway to speed things ?
There are several things that you can do to accelerate this. First, you should delete the plugins that you don't use. Some plugins are platform-specific, so you can safely delete those that are not intended to run on your platform. Some plugins depend on other plugins. Please delete plugins with care. Once you are sure that you have all the plugins that you need, you can use the Console Plugin to get an interactive shell that will let load Maven once and run as many goals as you want. On average machines it takes something like ten seconds to compile and run unit tests, so that you can build often and test your code often.
Why is the Maven repository on Ibiblio and not at Apache?
There are several reasons why the Maven Repository was setup at Ibiblio. Ibiblio is a massive archive of almost everything you could imagine but one of the stated goals of Ibiblio is to "Expand and improve the distribution of open source software". There is really no limit to how much we can stuff in the repository at Ibiblio and it will be archived indefinitely. They have a lot of bandwith, good redundancy and have a very secure setup. Another reason we placed the repository there was that it is Apache policy not to store any (L)GPL artifacts on our servers. We wanted Maven to work for as many Java developers as possible so we chose Ibiblio where there is no restriction on store (L)GPL artifacts. You can find out more about Ibiblio here.
How do I upload a resource to or update a resource on http://www.ibiblio.org/maven?
Read Uploading to Ibiblio Instructions.
How do I make my build complete even with broken tests?
See the Test Plugin Reference. Most notably, maven.test.skip and maven.test.failure.ignore. Heed the warnings!
My jars don't work under my application server

There is a bug in Maven Beta 9 that causes jars to be produced with invalid manifests. The problem with the manifests only comes to light when using the jars inside an Extension-aware program - eg. Tomcat.

If you are running beta-10 or later, you do not need to do this

http://projects.walding.com/maven-patches/maven-jar-plugin-1.0.jar resolves this issue and is built from CVS between beta 9 and 10.

Installation

rm -r $MAVEN_HOME/plugins/maven-jar-plugin-1.0 
rm $MAVEN_HOME/plugins/maven-jar-plugin-1.0.jar 
wget -P $MAVEN_HOME/plugins http://projects.walding.com/maven-patches/maven-jar-plugin-1.0.jar 
        
How do I get the XSLT tasks to work?

A common symptom is that the Jelly or Ant tag are output instead of being processed. See MAVEN-156.

The solution is to add the JAXP system property via the Jelly script.

${systemScope.setProperty('javax.xml.transform.TransformerFactory','org.apache.xalan.processor.TransformerFactoryImpl')} 
<ant:style in="${basedir}/some.xml" out="${maven.build.dest}/other.xml" style="${basedir}/sheet.xsl" processor="trax"/> 

Also make sure that Xalan is declared as dependencies in your project file:

<dependency>
  <groupId>xalan</groupId> 
  <artifactId>xalan</artifactId> 
  <version>2.3.1</version> 
  <url>http://xml.apache.org/xalan/</url> 
</dependency>
       
How to download a new plugin
maven -DartifactId=artifactID -DgroupID=GROUPID -Dversion=VERSION plugin:download
        

Building Maven

Building Maven
How do I build Maven?
Please see the Bootstrapping document.
How do I build Maven from behind a firewall?
You typically need to set your HTTP proxy host and port details so that Maven can tunnel through your HTTP Proxy. To do this you typically need to set the maven.proxy.host and maven.proxy.port properties. See the User Guide for more details.

Errors

Errors
maven site fails with bizarre Jelly errors, what can I do?
When I try to generate my site I get something like this:
BUILD FAILED
null:58:46:
<x:parse> Invalid source argument. Must be a String, Reader,
InputStream or URL. Was type; java.io.File with value:
/home/jvanzyl/js/com.werken/drools/target/jdepend-raw-report.xml
Total time:  12 seconds
        

This problem has been observed when a version of Jelly used as a dependency is different than the one distributed with Maven. This is the version of Jelly that is distributed with Maven 1.0-beta-8. If you align your versions of Jelly you should be able to generate your site. We hope to alleviate these problems with real ClassLoader isolation using Classworlds.

I can't seem to build Maven from CVS, what's wrong?
We get this question a lot and almost invariably it's due to not bootstrapping. If you want to build Maven from CVS you must bootstrap which means you must do this in the top-level directory:
        ant -f build-bootstrap.xml