You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by ah...@apache.org on 2006/08/01 23:51:30 UTC
svn commit: r427755 -
/maven/maven-1/core/trunk/xdocs/reference/backwards-compatibility.xml
Author: aheritier
Date: Tue Aug 1 14:51:30 2006
New Revision: 427755
URL: http://svn.apache.org/viewvc?rev=427755&view=rev
Log:
Update backwards incompatibilities
Modified:
maven/maven-1/core/trunk/xdocs/reference/backwards-compatibility.xml
Modified: maven/maven-1/core/trunk/xdocs/reference/backwards-compatibility.xml
URL: http://svn.apache.org/viewvc/maven/maven-1/core/trunk/xdocs/reference/backwards-compatibility.xml?rev=427755&r1=427754&r2=427755&view=diff
==============================================================================
--- maven/maven-1/core/trunk/xdocs/reference/backwards-compatibility.xml (original)
+++ maven/maven-1/core/trunk/xdocs/reference/backwards-compatibility.xml Tue Aug 1 14:51:30 2006
@@ -21,7 +21,9 @@
<properties>
<title>Compatibility Issues</title>
- <author email="brett@apache.org">Brett Porter</author>
+ <author email="brett AT apache DOT org">Brett Porter</author>
+ <author email="ltheussl AT apache DOT org">Lukas Theussl</author>
+ <author email="aheritiert AT apache DOT org">Arnaud Heritier</author>
</properties>
<body>
@@ -29,186 +31,271 @@
<p>
This page details some of the backwards compatibility issues that you
might encounter upgrading between Maven versions, and how to update your
- project.
+ project. You'll find here :
</p>
- <subsection name="Changes Between Maven 1.0 and Maven 1.1-beta-2">
- <p>
- <b>JDK requirement is now 1.4 and above</b>
- </p>
- <p>
- The JDK required to <i>run</i> 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.
- </p>
- <p>
- <b>Deprecated Plugins Removed</b>
- </p>
- <p>
- The following plugins are no longer distributed with Maven by default. They are still available using
- the <code>plugin:download</code> command to obtain the version released with Maven 1.0.2, 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.
- </p>
- <ul>
- <li>appserver</li>
- <li>ashkelon</li>
- <li>aspectwerkz</li>
- <li>caller</li>
- <li>docbook <i>(note that there is a superior docbook plugin at <a href="http://maven-plugins.sourceforge.net/">the SourceForge Maven Plugins project</a>)</i></li>
- <li>jdee</li>
- <li>jdeveloper</li>
- <li>junit-doclet</li>
- <li>latex</li>
- <li>latka</li>
- <li>shell</li>
- <li>struts</li>
- <li>tjdo</li>
- <li>vdoclet</li>
- <li>webserver</li>
- <li>wizard</li>
- </ul>
- <p>
- <b>The <code>default</code> attribute in maven.xml has been deprecated</b>
- </p>
- <p>
- The default goal should be specified in a <code><defaultGoal></code> tag inside the
- <code><build></code> section of project.xml instead of maven.xml.
- </p>
- <p>
- <b>Changes for XML parsers</b>
- </p>
- <p>
- Due to the minimum JDK requirement, Xerces is no longer bundled with Maven. Plugins that relied on
- that particular version of Xerces and are no JAXP compliant may need modifications.
- </p>
- <p>
- XSLT should now work under JDK 1.4 and 5.0 without the plugin modifications previously required.
- </p>
- <p>
- <b>Bundled Ant version changed from 1.5.3-1 to 1.6.5</b>
- </p>
- <p>
- 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.
- </p>
- <p>
- <b>Implicit dependencies on JARs in Maven's <code>lib</code> directory</b>
- </p>
- <p>
- Aside from the XML parsers, the following libraries are no longer distributed with Maven:
- </p>
- <ul>
- <li><code>commons-digester</code></li>
- <li><code>commons-graph</code></li>
- <li><code>commons-lang</code></li>
- <li><code>which</code></li>
- </ul>
- <p>
- If a plugin did not declare a dependency but relied on its existence, it may fail to work under Maven 1.1.
- </p>
- <p>
- In addition, the versions of some libraries have changed, which may affect plugins.
- </p>
- <p>
- <b>Upgrading <code>maven.jar</code></b>
- </p>
- <p>
- If you are directly importing and using classes from this package, you may find classes
- from the <code>org.apache.maven.project</code> package are missing as they have moved.
- This may also apply if you are using <code>maven-jelly-tags</code>.
- </p>
- <p>
- <b>Fix:</b> Include <code>maven-model-3.0.1</code> in your project's dependencies.
- </p>
- <p>
- <b>Changes to <code>org.apache.maven.project.Repository</code> (and use of <code>pom.repository.*</code> in Jelly)</b>
- </p>
- <p>
- The <code>Repository</code> class now houses only the information from the project model.
- You may find that static methods such as <code>splitSCMConnection</code> and <code>tokenizerToArray</code>
- or fields such as <code>scmType</code>, which depended on the split function, are missing.
- </p>
- <p>
- <b>Fix:</b> These functions have been removed. The static methods do exist in
- <code>maven-changelog-plugin</code> if needed, in the <code>RepositoryUtils</code> class.
- All other plugins had been manually splitting the connection string.
- See <code>maven-scm-plugin</code> for an example of this.
- The future should see all plugins and code using Maven SCM for this task, and all dealings with an
- SCM system.
- </p>
- <p>
- <b>Use of <code>Project.getDependencyPath</code> and <code>Project.getDependency</code></b>
- </p>
- <p>
- If you have a single non-JAR artifact that you resolve using this function, it will no longer be
- found.
- </p>
- <p>
- <b>Fix:</b> Specify the type in the argument. The full form is
- <code>getDependency('groupId:artifactId:type')</code>. Type is defaulted to <code>jar</code>.
- </p>
- <p>
- <b>Parse errors on previously 'valid' project files</b>
- </p>
- <p>
- <code>project.xml</code> 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 <code>project.xml</code> files
- to avoid silently masking syntax errors. Some XML features are not enabled (such as DOCTYPE ENTITY
- declarations) - see the <a href="../faq.html">FAQ</a> for an explanation.
- </p>
- <p>
- <b>Fix:</b> Check your project file against the XSD published for the model version you are using.
- </p>
- <p>
- <b>Entities and JDK 1.4</b>
- </p>
- <p>
- Due to a bug in the parser included with JDK 1.4, relative SYSTEM entities will not work in
- <code>maven.xml</code> where they may have previously.
- </p>
- <p>
- <b>Fix:</b> As above, we recommend not using entities in <code>maven.xml</code>, in favour of inheritance
- and plugins. If you want an existing file to work without modifications, you should
- download <a href="http://www.ibiblio.org/maven2/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar">Xerces</a> and place it in
- <code><JAVA_HOME>/jre/lib/endorsed</code> (this directory may need to be created).
- </p>
+ <ul>
+ <li><a href="#Changes_Between_Maven_1.0.2_and_Maven_1.1-beta-3">Changes Between Maven 1.0.2 and Maven 1.1-beta-3</a> : If you are using the last release.</li>
+ <li><a href="#Changes_Between_Maven_1.1-beta-2_and_Maven_1.1-beta-3">Changes Between Maven 1.1-beta-2 and Maven 1.1-beta-3</a> : If you are already using the last testing release.</li>
+ </ul>
+ <subsection name="Changes Between Maven 1.0.2 and Maven 1.1-beta-3">
+ <dl>
+ <dt>JDK requirement is now 1.4 and above</dt>
+ <dd>
+ <p>
+ The JDK required to <i>run</i> 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.
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>Bundled Ant version changed from 1.5.3-1 to 1.6.5</dt>
+ <dd>
+ <p>
+ While in most cases this change should be transparent, those <b>using optional tasks will need to add them as
+ a dependency to their plugin/project</b>, as not all optional tasks are bundled with Maven any more.
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>Deprecated Plugins Removed</dt>
+ <dd>
+ <p>
+ The following plugins are no longer distributed with Maven by default. They are still available using
+ the <code>plugin:download</code> 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.
+ </p>
+ <ul>
+ <li>abbot</li>
+ <li>appserver</li>
+ <li>ashkelon</li>
+ <li>aspectwerkz</li>
+ <li>caller</li>
+ <li>castor</li>
+ <li>docbook <i>(note that there is a superior docbook plugin at <a href="http://maven-plugins.sourceforge.net/">the SourceForge Maven Plugins project</a>)</i></li>
+ <li>hibernate</li>
+ <li>j2ee</li>
+ <li>jboss <i>(can be replaced by <a href="http://cargo.codehaus.org/Maven1+plugin">Cargo</a>)</i></li>
+ <li>jbuilder</li>
+ <li>jcoverage</li>
+ <li>jdee</li>
+ <li>jdeveloper</li>
+ <li>jetty <i>(can be replaced by <a href="http://cargo.codehaus.org/Maven1+plugin">Cargo</a>)</i></li>
+ <li>jnlp</li>
+ <li>junit-doclet</li>
+ <li>latex</li>
+ <li>latka</li>
+ <li>release <i>(replaced functionality by scm)</i></li>
+ <li>repository</li>
+ <li>shell</li>
+ <li>struts</li>
+ <li>tjdo</li>
+ <li>uberjar <i>(can be replaced by <a href="http://maven-plugins.sourceforge.net/maven-javaapp-plugin/">javaapp</a>)</i></li>
+ <li>vdoclet</li>
+ <li>webserver</li>
+ <li>wizard</li>
+ </ul>
+ </dd>
+ </dl>
+ <dl>
+ <dt>The <code>default</code> attribute in maven.xml has been deprecated</dt>
+ <dd>
+ <p>
+ The default goal should be specified in a <code><defaultGoal></code> tag inside the
+ <code><build></code> section of project.xml instead of maven.xml.
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>Implicit dependencies on JARs in Maven's <code>lib</code> directory</dt>
+ <dd>
+ <p>
+ The following libraries are no longer distributed with Maven:
+ </p>
+ <ul>
+ <li><code>commons-digester</code></li>
+ <li><code>commons-graph</code></li>
+ <li><code>commons-lang</code></li>
+ <li><code>which</code></li>
+ </ul>
+ <p>
+ If a plugin did not declare a dependency but relied on its existence, it may fail to work under Maven 1.1.
+ </p>
+ <p>
+ In addition, the versions of some libraries have changed, which may affect plugins.
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>Upgrading <code>maven.jar</code></dt>
+ <dd>
+ <p>
+ If you are directly importing and using classes from this package, you may find classes
+ from the <code>org.apache.maven.project</code> package are missing as they have moved.
+ This may also apply if you are using <code>maven-jelly-tags</code>.
+ </p>
+ <p>
+ <b>Fix:</b> Include <code>maven-model-3.0.1</code> in your project's dependencies.
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>Changes to <code>org.apache.maven.project.Repository</code> (and use of <code>pom.repository.*</code> in Jelly)</dt>
+ <dd>
+ <p>
+ The <code>Repository</code> class now houses only the information from the project model.
+ You may find that static methods such as <code>splitSCMConnection</code> and <code>tokenizerToArray</code>
+ or fields such as <code>scmType</code>, which depended on the split function, are missing.
+ </p>
+ <p>
+ <b>Fix:</b> These functions have been removed. The static methods do exist in
+ <code>maven-changelog-plugin</code> if needed, in the <code>RepositoryUtils</code> class.
+ All other plugins had been manually splitting the connection string.
+ See <code>maven-scm-plugin</code> for an example of this.
+ The future should see all plugins and code using Maven SCM for this task, and all dealings with an
+ SCM system.
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>Use of <code>Project.getDependencyPath</code> and <code>Project.getDependency</code></dt>
+ <dd>
+ <p>
+ If you have a single non-JAR artifact that you resolve using this function, it will no longer be
+ found.
+ </p>
+ <p>
+ <b>Fix:</b> Specify the type in the argument. The full form is
+ <code>getDependency('groupId:artifactId:type')</code>. Type is defaulted to <code>jar</code>.
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>POM and Entities</dt>
+ <dd>
+ <p>
+ Due to a bug in the new model generated by modello (See <a href="http://jira.codehaus.org/browse/MAVEN-1755">MAVEN-1755</a>) relative SYSTEM entities not work in the POM.
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>XML APIs</dt>
+ <dd>
+ <p>
+ As in maven 1.0, <a href="/dependencies.html">xercesImpl,xml-apis and xml-resolver</a>
+ 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.
+ </p>
+ <p>
+ If in a custom goal or in a plugin, you use some xslt transformations, we recommend to not
+ use the style task in ant which will not work with all JDKs. Instead of that you are
+ encouraged to use a custom process launched in a forked JVM (like it's done in the PDF plugin
+ for example).
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>Parse errors on previously 'valid' project files</dt>
+ <dd>
+ <p>
+ <code>project.xml</code> 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 <code>project.xml</code> files
+ to avoid silently masking syntax errors. Some XML features are not enabled (such as DOCTYPE ENTITY
+ declarations) - see the <a href="../faq.html">FAQ</a> for an explanation.
+ </p>
+ <p>
+ <b>Fix:</b> Check your project file against the XSD published for the model version you are using.
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>Deprecated <code>create-upload-bundle</code> goal.</dt>
+ <dd>
+ <p>
+ Replaced by <code>artifact:create-upload-bundle</code>.
+ </p>
+ </dd>
+ </dl>
</subsection>
- <subsection name="Changes Between Maven 1.1-beta-2 and Maven 1.1-beta-3 (unpublished)">
- <p>
- <b>Deprecated Plugins Removed</b>
- </p>
- <p>
- The following plugins are no longer distributed with Maven by default. They are still available using
- the <code>plugin:download</code> command to obtain the version released with Maven 1.0.2, 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.
- </p>
- <ul>
- <li>abbot</li>
- <li>castor</li>
- <li>hibernate</li>
- <li>j2ee</li>
- <li>jboss <i>(can be replaced by <a href="http://cargo.codehaus.org/Maven1+plugin">Cargo</a>)</i></li>
- <li>jbuilder</li>
- <li>jcoverage</li>
- <li>jetty <i>(can be replaced by <a href="http://cargo.codehaus.org/Maven1+plugin">Cargo</a>)</i></li>
- <li>jnlp</li>
- <li>release <i>(replaced functionality by scm)</i></li>
- <li>repository</li>
- <li>uberjar <i>(can be replaced by <a href="http://maven-plugins.sourceforge.net/maven-javaapp-plugin/">javaapp</a>)</i></li>
- </ul>
- <p>
- <b>Deprecated <code>create-upload-bundle</code> goal.</b>
- </p>
- <p>
- Replaced by <code>artifact:create-upload-bundle</code>.
- </p>
- <p>
- <b>Xerces is back.</b>
- </p>
- <p>
- See <a href="http://jira.codehaus.org/browse/MAVEN-1753">MAVEN-1753</a>.
- </p>
+ <subsection name="Changes Between Maven 1.1-beta-2 and Maven 1.1-beta-3">
+ <dl>
+ <dt>Deprecated Plugins Removed</dt>
+ <dd>
+ <p>
+ The following plugins are no longer distributed with Maven by default. They are still available using
+ the <code>plugin:download</code> command to obtain the version released with Maven 1.0.2, 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.
+ </p>
+ <ul>
+ <li>abbot</li>
+ <li>castor</li>
+ <li>hibernate</li>
+ <li>j2ee</li>
+ <li>jboss <i>(can be replaced by <a href="http://cargo.codehaus.org/Maven1+plugin">Cargo</a>)</i></li>
+ <li>jbuilder</li>
+ <li>jcoverage</li>
+ <li>jetty <i>(can be replaced by <a href="http://cargo.codehaus.org/Maven1+plugin">Cargo</a>)</i></li>
+ <li>jnlp</li>
+ <li>release <i>(replaced functionality by scm)</i></li>
+ <li>repository</li>
+ <li>uberjar <i>(can be replaced by <a href="http://maven-plugins.sourceforge.net/maven-javaapp-plugin/">javaapp</a>)</i></li>
+ </ul>
+ </dd>
+ </dl>
+ <dl>
+ <dt>XML APIs</dt>
+ <dd>
+ <p>
+ Due to the problems found in the parsers bundled in the different JDK, we re-introduced
+ xerces in maven.
+ </p>
+ <p>
+ As in maven 1.0, <a href="/dependencies.html">xercesImpl,xml-apis and xml-resolver</a>
+ 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.
+ </p>
+ <p>
+ If in a custom goal or in a plugin, you use some xslt transformations, we recommend to not
+ use the style task in ant which will not work with all JDKs. Instead of that you are
+ encouraged to use a custom process launched in a forked JVM (Like it's done in the PDF plugin
+ for example).
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>XML Entities</dt>
+ <dd>
+ <p>
+ With the upgrade of Dom4J, relative SYSTEM entities work in xdocs and maven.xml.
+ Due to a bug in the new model generated by modello
+ (See <a href="http://jira.codehaus.org/browse/MAVEN-1755">MAVEN-1755</a>) relative
+ SYSTEM entities not work in the POM.
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>Deprecated <code>create-upload-bundle</code> goal.</dt>
+ <dd>
+ <p>
+ Replaced by <code>artifact:create-upload-bundle</code>.
+ </p>
+ </dd>
+ </dl>
+ <dl>
+ <dt>Multi-projects issues fixed</dt>
+ <dd>
+ <p>
+ Several important issues concerning multi-projects are now fixed which resolve backward
+ incompabilities with maven 1.0.x introduced in previous betas.
+ (<a href="http://jira.codehaus.org/browse/MPMULTIPROJECT-66">MPMULTIPROJECT-66</a>,
+ <a href="http://jira.codehaus.org/browse/MPMULTIPROJECT-60">MPMULTIPROJECT-60</a>,
+ <a href="http://jira.codehaus.org/browse/MAVEN-1638">MAVEN-1638</a>,
+ <a href="http://jira.codehaus.org/browse/MAVEN-1691">MAVEN-1691</a>, ...)
+ </p>
+ </dd>
+ </dl>
</subsection>
</section>