Author: svn-site-role Date: Mon Jul 14 16:56:46 2025 New Revision: 1927228 Log: Site checkin for project Apache Maven Site
Modified: maven/website/content/guides/mini/guide-migration-to-mvn4.html Modified: maven/website/content/guides/mini/guide-migration-to-mvn4.html ============================================================================== --- maven/website/content/guides/mini/guide-migration-to-mvn4.html (original) +++ maven/website/content/guides/mini/guide-migration-to-mvn4.html Mon Jul 14 16:56:46 2025 @@ -182,8 +182,8 @@ This page offers help for users who want <p>In short, the general suggestion for the migration is to do it in three steps:</p> <ol style="list-style-type: decimal;"> -<li>Meet the prerequisites</li> -<li>Use Maven 4 for your build and fix build errors</li> +<li>Meet the prerequisites with latest Maven 3</li> +<li>Build also with Maven 4 and fix errors</li> <li>Introduce optional Maven 4 features</li> </ol> <p>If you run into any issues, please don't hesitate to contact the <a href="/mailing-lists.html">users mailing list</a>. @@ -192,10 +192,10 @@ The Maven team is interested in all your <ul> <li>This page will constantly be updated to contain changes, but also to integrate feedback of the community and their experience when upgrading to Maven 4. -This means it will still receive updates after Maven 4 was already released.</li> -<li>It is planned to provide a migration tool (see <a href="https://issues.apache.org/jira/projects/MNG/issues/MNG-8649" class="externalLink">MNG-8649</a>), doing most of the steps needed to migrate a project.</li> +This means it will still receive updates after Maven 4 has been released.</li> +<li>Maven 4.0.0-rc-4 provides a migration tool (see <a href="https://issues.apache.org/jira/projects/MNG/issues/MNG-8765" class="externalLink">MNG-8765</a>), doing most of the steps needed to migrate a project.</li> <li>This guide does not contain information about how to update plugins to use the new Maven 4 plugin API. -It is planned to create a separate guide for this.</li> +We plan to create a separate guide for this.</li> </ul><section><a id="Table_of_content"></a> <h2>Table of content</h2> <ul> @@ -237,7 +237,7 @@ If they don't, please make sure they do <p>This guide assumes that the project to be migrated was successfully built using the <a href="/docs/history.html">latest version of Maven 3</a>.</p></section><section><a id="Upgrade_plugins_to_their_latest_Maven_3_version"></a> <h3>Upgrade plugins to their latest Maven 3 version</h3> <p>Similar to the previous prerequisite, the guides assumes that you are using the latest Maven 3 plugin version of all your plugins.</p> -<p>Do not upgrade to a plugin version, which requires Maven 4! +<p>Do not upgrade yet to a plugin version which requires Maven 4! Be aware of this, if you use tools that can automate updates.</p> <p>You can use the <a href="https://www.mojohaus.org/versions/versions-maven-plugin/examples/display-plugin-updates.html" class="externalLink">versions-maven-plugin's <code>display-plugin-updates</code> goal</a> to see which are the latest available versions of the plugins you use.</p> <p>The following example shows the output of the Versions Maven Plugin in a project using the outdated version 3.12.0 of the Maven Compiler Plugin. @@ -273,14 +273,14 @@ See the information <a href="/download.c <p>Places where you might have to configure Maven 4 usage aside installation:</p> <ul> -<li><a href="/wrapper/index.html">Maven Wrapper</a>'s <code>maven-wrapper.properties</code> file.</li> +<li><a href="/tools/wrapper/index.html">Maven Wrapper</a>'s <code>maven-wrapper.properties</code> file.</li> <li><a href="/enforcer/enforcer-rules/requireMavenVersion.html">Required Maven version</a> rule of the Maven enforcer plugin.</li> <li>Your own CI/CD configuration scripts or pipelines.</li> </ul></section><section><a id="Update_plugins_to_Maven_4_version"></a> <h3>Update plugins to Maven 4 version</h3> <p>If there is a dedicated Maven 4 version for used plugins, you should update to such a version. You can use the <a href="https://www.mojohaus.org/versions/versions-maven-plugin/examples/display-plugin-updates.html" class="externalLink">Versions Maven Plugin's <code>display-plugin-updates</code> goal</a> to check for updates.</p> -<p><strong>Note</strong>: While Maven 4.0.0 aims to support all Maven 3.9 compatible plugins, this can not be guaranteed for plugins which use outdated plugin API methods.</p></section></section><section><a id="Troubleshooting_and_required_changes_if_situation_applies"></a> +<p><strong>Note</strong>: While Maven 4.0.0 aims to support all Maven 3.9 compatible plugins, this can not be guaranteed for plugins which use outdated Maven 2 or 3 plugin API methods.</p></section></section><section><a id="Troubleshooting_and_required_changes_if_situation_applies"></a> <h2>Troubleshooting and required changes if situation applies</h2> <p>The following changes are in general not required by all projects, but might apply to yours.</p><section><a id="Fix_plugin_misconfigurations"></a> <h3>Fix plugin misconfigurations</h3> @@ -312,9 +312,9 @@ This includes the following properties:< <li><code>multiModuleProjectDirectory</code></li> </ul></section><section><a id="Replace_conceptional_pre-_and_post-_lifecycle_phases"></a> <h3>Replace conceptional <code>pre-</code> and <code>post-</code> lifecycle phases</h3> -<p>In Maven 3 some lifecycle phases also had conceptional <code>pre-</code> and <code>post-</code> phases, but they were not available for all phases. -In Maven 4 those phases are removed in favor of new <code>before:</code> and <code>after:</code> phases, available for all lifecycle phases.</p> -<p>Update your plugin executions that bind to a <code>pre-</code> or <code>-post</code> phase with the corresponding <code>before:</code> or <code>after:</code> phases.</p></section></section><section><a id="Optional_changes_and_features"></a> +<p>In Maven 3, <code>integration-test</code> <a href="/ref/3-LATEST/maven-core/lifecycles.html">lifecycle phase</a> had conceptional <code>pre-</code> and <code>post-</code> phases, but this was the only phase with these +In Maven 4 those phases are removed in favor of new <code>before:</code> and <code>after:</code> phases, available for <a href="/ref/4-LATEST/maven-impl-modules/maven-core/lifecycles.html">all lifecycle phases</a>.</p> +<p>Update your plugin executions that bind to a <code>pre-integration-test</code> or <code>post-integration-test</code> phase with the corresponding <code>before:integration-test</code> or <code>after:integration-test</code> phases.</p></section></section><section><a id="Optional_changes_and_features"></a> <h2>Optional changes and features</h2><section><a id="Changed_default_values"></a> <h3>Changed default values</h3><section><a id="Install.2Fdeploy_at_end_of_build_.28breaking_change.29"></a> <h4>Install/deploy at end of build (breaking change)</h4> @@ -433,11 +433,11 @@ This subproject declares its parent and Thanks to the improved dependency resolution of project own dependencies in multi subprojects setups they are now fully supported if you rely on the automatic versioning as described in the section above. This also means that you don't need the <a href="https://www.mojohaus.org/flatten-maven-plugin/" class="externalLink">flatten-maven-plugin</a> to <code>install</code> and <code>deploy</code> anymore.</p></section><section><a id="Using_BOM_packaging"></a> <h4>Using BOM packaging</h4> -<p>Maven 4 introduces a dedicated <code>bom</code> packaging type to provide a <a href="https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#bill-of-materials-bom-poms" class="externalLink">Bill of Materials BOM</a>. -This now differentiates between parent POMs and dependency-managing BOMs. +<p>Maven 4 introduces a dedicated <code>bom</code> packaging type to provide a <a href="https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#bill-of-materials-bom-poms" class="externalLink">Bill of Materials BOM POM</a>. +This now differentiates between parent POMs and dependency-managing BOM POMs. The new type is only available as a build POM in Model Version 4.1.0 and later, but Maven generates a full Maven 3 compatible consumer POM during the build.</p> -<p>The following code snippet shows an example for a BOM using the new <code><packaging></code> type.</p> +<p>The following code snippet shows an example for a BOM POM using the new <code><packaging></code> type.</p> <pre class="prettyprint linenums"><code class="language-xml"><project xmlns="http://maven.apache.org/POM/4.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" @@ -467,7 +467,7 @@ compatible consumer POM during the build </project> </code></pre></section></section><section><a id="Use_the_new_all_and_each_life_cycle_phases"></a> <h3>Use the new <code>all</code> and <code>each</code> life cycle phases</h3> -<p>Maven 4 introduces several new lifecycle phases — <code>all</code>, <code>each</code>, <code>before:all</code>, <code>after:all</code>, <code>before:each</code>, and <code>after:each</code>. +<p>Maven 4 introduces several new <a href="/ref/4-LATEST/maven-impl-modules/maven-core/lifecycles.html">lifecycle phases</a> — <code>all</code>, <code>each</code>, <code>before:all</code>, <code>after:all</code>, <code>before:each</code>, and <code>after:each</code>. They give users finer control over plugin execution, particularly in multi-project and concurrent builds. If you want to execute a plugin before/after all or each of your (sub-)projects, consider to use them.</p></section></section></section> </main> </div>