This page details some of the backwards compatibility issues that you might encounter upgrading between Maven versions, and how to update your project. You'll find here:
The JDK required to run Maven is now 1.4 or above. This does not affect what JDKs you can build your libraries for, however - you can still generate class files that will run on 1.1 JVMs as before.
While in most cases this change should be transparent, those using optional tasks will need to add them as a dependency to their plugin/project, as not all optional tasks are bundled with Maven any more.
The following plugins are no longer distributed with Maven by default. They are still available using
plugin:download command to obtain the last version released, and the source
code is available from the plugin sandbox. If there is sufficient interest in maintaining them or moving
them to another project it will be considered.
defaultattribute in maven.xml has been deprecated
The default goal should be specified in a
<defaultGoal> tag inside the
<build> section of project.xml instead of maven.xml.
The following libraries are no longer distributed with Maven:
If a plugin did not declare a dependency but relied on its existence, it may fail to work under Maven 1.1.
In addition, the versions of some libraries have changed, which may affect plugins.
If you are directly importing and using classes from this package, you may find classes
org.apache.maven.project package are missing as they have moved.
This may also apply if you are using
maven-model-3.0.1 in your project's dependencies.
org.apache.maven.project.Repository(and use of
Repository class now houses only the information from the project model.
You may find that static methods such as
or fields such as
scmType, which depended on the split function, are missing.
Fix:The static methods have been removed from the core
but they exist in the
RepositoryUtils class in
maven-changelog-plugin if needed.
All other plugins had been manually splitting the connection string.
maven-scm-plugin for an example of this.
The future should see all plugins and code using Maven SCM for this task, and all dealings with an
If you have a single non-JAR artifact that you resolve using this function, it will no longer be found.
Fix: Specify the type in the argument. The full form is
getDependency('groupId:artifactId:type'). Type is defaulted to
As in maven 1.0, xercesImpl,xml-apis and xml-resolver are loaded in the endorsed libraries of the JVM. You can't override them and if you use another version of xml-apis in your tests, you have to fork the JVM.
If in a custom goal or in a plugin, you use some xslt transformations, we recommend that you not use the style task in ant which will not work with all JDKs. Instead, you are encouraged to use a custom process launched in a forked JVM (like it's done in the PDF plugin for example).
project.xml files that used to work in older versions of Maven may now present parse
errors. The parser in Maven 1.1 is much less tolerant of invalid
to avoid silently masking syntax errors.
Fix: Check your project file against the XSD published for the model version you are using.
Each plugin has its independent release cycle. With respect to Maven 1.0.2, practically every bundled plugin has seen a major version upgrade. The following is a (certainly incomplete!) list of the most prominent, known issues: