You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by hb...@apache.org on 2022/05/08 09:32:25 UTC

[maven-release] branch master updated: [MRELEASE-955] add upgrade from 2 to 3 impact on release profiles

This is an automated email from the ASF dual-hosted git repository.

hboutemy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-release.git


The following commit(s) were added to refs/heads/master by this push:
     new fae7201e [MRELEASE-955] add upgrade from 2 to 3 impact on release profiles
fae7201e is described below

commit fae7201e1670176eff3402a72d4ae7a7b5802e8c
Author: Hervé Boutemy <hb...@apache.org>
AuthorDate: Sun Apr 24 03:02:12 2022 +0200

    [MRELEASE-955] add upgrade from 2 to 3 impact on release profiles
---
 maven-release-plugin/src/site/apt/upgrade.apt.vm | 98 ++++++++++++++++++++++++
 maven-release-plugin/src/site/site.xml           |  1 +
 2 files changed, 99 insertions(+)

diff --git a/maven-release-plugin/src/site/apt/upgrade.apt.vm b/maven-release-plugin/src/site/apt/upgrade.apt.vm
new file mode 100644
index 00000000..93f66930
--- /dev/null
+++ b/maven-release-plugin/src/site/apt/upgrade.apt.vm
@@ -0,0 +1,98 @@
+  ------
+  Upgrading Maven Release Plugin From 2 to 3
+  ------
+  ------
+  2022-04-24
+  ------
+
+~~ Licensed to the Apache Software Foundation (ASF) under one
+~~ or more contributor license agreements.  See the NOTICE file
+~~ distributed with this work for additional information
+~~ regarding copyright ownership.  The ASF licenses this file
+~~ to you under the Apache License, Version 2.0 (the
+~~ "License"); you may not use this file except in compliance
+~~ with the License.  You may obtain a copy of the License at
+~~
+~~   http://www.apache.org/licenses/LICENSE-2.0
+~~
+~~ Unless required by applicable law or agreed to in writing,
+~~ software distributed under the License is distributed on an
+~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+~~ KIND, either express or implied.  See the License for the
+~~ specific language governing permissions and limitations
+~~ under the License.
+
+~~ NOTE: For help with the syntax of this file, see:
+~~ http://maven.apache.org/doxia/references/apt-format.html
+
+Upgrading Maven Release Plugin From 2 to 3
+
+* Context: Maven 3 and Maven 4
+
+  Maven 3 (and previously 2) provides a default release profile named <<<release-profile>>> that builds and attaches source and javadoc jar:
+  this is defined in {{{/ref/3.8.5/maven-model-builder/super-pom.html}the super POM}}. This profile is activated by default during <<<release:perform>>>
+  with Maven Release Plugin 2.x, unless deactivated by configuring <<<useReleaseProfile>>> parameter to <<<false>>>.
+
+  In Maven 4, this default profile will be removed from super POM (see {{{https://issues.apache.org/jira/browse/MNG-7029}MNG-7029}}).
+
+  To prepare for this removal, Maven Release Plugin 3.0 stopped invoking this profile by default: <<<useReleaseProfile>>> parameter is <<<false>>> by default.
+
+* Upgrading Maven Release Plugin 2 to 3
+
+** Write And Configure Your Own Release Profile 
+
+  In order to prepare for Maven 4, each project will instead require to define their own release profile that they'll be able to customise
+  to match their needs:
+
+  * for internal projects, just configure the <<<maven-source-plugin>>> for example
+
+  * for projects published to Maven Central repository, you'll need to add also <<<maven-javadoc-plugin>>> and <<<maven-gpg-plugin>>>: see
+    {{{https://central.sonatype.org/publish/publish-maven/}the documentation}}
+
+   []
+
+  Then configure <<<maven-release-plugin>>> to use that profile during <<<release:perform>>> with <<<releaseProfiles>>> parameter:
+
++-------+
+<project>
+  [...]
+  <build>
+    [...]
+    <plugins>
+      [...]
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-release-plugin</artifactId>
+        <version>${project.version}</version>
+        <configuration>
+          <releaseProfiles>my-project-release</releaseProfiles>
+        </configuration>
+      </plugin>
+      [...]
+    </plugins>
+    [...]
+  </build>
+
+  [...]
+
+  <profiles>
+    <profile>
+      <id>my-project-release</id>
+      <build>
+        <plugins>
+         [...
+          put here your release-specific plugins invocations, like maven-source-plugin, maven-javadoc-plugin, maven-gpg-plugin, ...
+          ...]
+        </plugins>
+      </build>
+    </profile>
+    [...]
+  </profiles>
+</project>
++-------+
+ 
+** Short Term: Force Using Maven 3-only Default Release Profile
+
+  Configuring explicitely <<<useReleaseProfile>>> parameter to <<<true>>> will force Maven Release Plugin 3 to work like version 2.
+
+  It provides an easy but temporary solution, working only with Maven 3, when you can't yet write your own release profile.
diff --git a/maven-release-plugin/src/site/site.xml b/maven-release-plugin/src/site/site.xml
index a6907be5..67d10dc3 100644
--- a/maven-release-plugin/src/site/site.xml
+++ b/maven-release-plugin/src/site/site.xml
@@ -34,6 +34,7 @@ under the License.
       <item name="Introduction" href="index.html"/>
       <item name="Goals" href="plugin-info.html"/>
       <item name="Usage" href="usage.html"/>
+      <item name="Upgrade" href="upgrade.html"/>
       <item name="FAQ" href="faq.html"/>
       <!-- According to https://issues.apache.org/jira/browse/MNGSITE-152 -->
       <item name="License" href="http://www.apache.org/licenses/"/>