[MPOM-96] configure scm-publish mono-module site deploy
previous strategy with a profile in Maven parent POM that should be
activated by a POM property in childs simply does not work: profile
activation happens too early, before inheritance
diff --git a/doxia-tools/pom.xml b/doxia-tools/pom.xml
index 54a9d86..a0eef92 100644
--- a/doxia-tools/pom.xml
+++ b/doxia-tools/pom.xml
@@ -57,7 +57,6 @@
<properties>
<projectVersion>${project.version}</projectVersion>
<maven.site.path>doxia-tools-archives/${project.artifactId}-LATEST</maven.site.path>
- <maven.site.scm-deploy>true</maven.site.scm-deploy>
</properties>
<dependencyManagement>
@@ -86,6 +85,30 @@
<tagBase>https://svn.apache.org/repos/asf/maven/doxia/doxia-tools/tags</tagBase>
</configuration>
</plugin>
+ <!-- publish mono-module site with "mvn site-deploy" -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <skipDeploy>true</skipDeploy><!-- don't deploy site with maven-site-plugin -->
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-scm-publish-plugin</artifactId>
+ <configuration>
+ <content>${project.reporting.outputDirectory}</content><!-- no need for site:stage, use target/site -->
+ </configuration>
+ <executions>
+ <execution>
+ <id>scm-publish</id>
+ <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
+ <goals>
+ <goal>publish-scm</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</pluginManagement>
<plugins>
diff --git a/doxia-tools/src/site-docs/apt/index.apt.vm b/doxia-tools/src/site-docs/apt/index.apt.vm
index 75fa2cf..8bab27e 100644
--- a/doxia-tools/src/site-docs/apt/index.apt.vm
+++ b/doxia-tools/src/site-docs/apt/index.apt.vm
@@ -30,3 +30,13 @@
This POM is the common parent of all of the {{{/doxia/doxia-tools/}Maven Doxia Tools}}
in the Apache Maven project.
+
+* Site Publication
+
+ Since Doxia Tools are always mono-module builds, this parent POM has configured <<<maven-scm-publish-plugin>>>
+ {{{/plugins/maven-scm-publish-plugin/examples/one-module-configuration.html}mono module optimization}}
+ to ease site build & deployment in only one integrated and simplified command:
+
++-----+
+mvn -Preporting site-deploy
++-----+
diff --git a/maven-archetype-bundles/pom.xml b/maven-archetype-bundles/pom.xml
index 1c46939..fe248aa 100644
--- a/maven-archetype-bundles/pom.xml
+++ b/maven-archetype-bundles/pom.xml
@@ -44,7 +44,6 @@
<properties>
<maven.site.path>archetypes-archives/${project.artifactId}-LATEST</maven.site.path>
- <maven.site.scm-deploy>true</maven.site.scm-deploy>
</properties>
<build>
@@ -69,6 +68,30 @@
<tagBase>https://svn.apache.org/repos/asf/maven/archetypes/tags/</tagBase>
</configuration>
</plugin>
+ <!-- publish mono-module site with "mvn site-deploy" -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <skipDeploy>true</skipDeploy><!-- don't deploy site with maven-site-plugin -->
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-scm-publish-plugin</artifactId>
+ <configuration>
+ <content>${project.reporting.outputDirectory}</content><!-- no need for site:stage, use target/site -->
+ </configuration>
+ <executions>
+ <execution>
+ <id>scm-publish</id>
+ <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
+ <goals>
+ <goal>publish-scm</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</pluginManagement>
<plugins>
diff --git a/maven-archetype-bundles/src/site-docs/apt/index.apt.vm b/maven-archetype-bundles/src/site-docs/apt/index.apt.vm
index 75fa2cf..8bab27e 100644
--- a/maven-archetype-bundles/src/site-docs/apt/index.apt.vm
+++ b/maven-archetype-bundles/src/site-docs/apt/index.apt.vm
@@ -30,3 +30,13 @@
This POM is the common parent of all of the {{{/doxia/doxia-tools/}Maven Doxia Tools}}
in the Apache Maven project.
+
+* Site Publication
+
+ Since Doxia Tools are always mono-module builds, this parent POM has configured <<<maven-scm-publish-plugin>>>
+ {{{/plugins/maven-scm-publish-plugin/examples/one-module-configuration.html}mono module optimization}}
+ to ease site build & deployment in only one integrated and simplified command:
+
++-----+
+mvn -Preporting site-deploy
++-----+
diff --git a/maven-plugins/pom.xml b/maven-plugins/pom.xml
index 0b19b93..f9016f0 100644
--- a/maven-plugins/pom.xml
+++ b/maven-plugins/pom.xml
@@ -50,7 +50,6 @@
<properties>
<maven.site.path>plugins-archives/${project.artifactId}-LATEST</maven.site.path>
- <maven.site.scm-deploy>true</maven.site.scm-deploy>
</properties>
<dependencies>
@@ -135,6 +134,30 @@
</execution>
</executions>
</plugin>
+ <!-- publish mono-module site with "mvn site-deploy" -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <skipDeploy>true</skipDeploy><!-- don't deploy site with maven-site-plugin -->
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-scm-publish-plugin</artifactId>
+ <configuration>
+ <content>${project.reporting.outputDirectory}</content><!-- no need for site:stage, use target/site -->
+ </configuration>
+ <executions>
+ <execution>
+ <id>scm-publish</id>
+ <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
+ <goals>
+ <goal>publish-scm</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</pluginManagement>
<plugins>
diff --git a/maven-plugins/src/site-docs/apt/index.apt.vm b/maven-plugins/src/site-docs/apt/index.apt.vm
index 368e018..18bb6c5 100644
--- a/maven-plugins/src/site-docs/apt/index.apt.vm
+++ b/maven-plugins/src/site-docs/apt/index.apt.vm
@@ -32,7 +32,7 @@
This POM is the common parent of all of the {{{/plugins/}Maven plugins}}
in the Apache Maven project.
-The <<<run-its>>> Profile
+* The <<<run-its>>> Profile
This POM provides <<<run-its>>> profile for running Integration Tests to check real plugin execution.
A default configuration for <<<maven-invoker-plugin>>> is defined, that every plugin needs to enhance
@@ -42,7 +42,18 @@
mvn -Prun-its verify
+---+
-History
+
+* Site Publication
+
+ Since Maven plugins are always mono-module builds, this parent POM has configured <<<maven-scm-publish-plugin>>>
+ {{{/plugins/maven-scm-publish-plugin/examples/one-module-configuration.html}mono module optimization}}
+ to ease site build & deployment in only one integrated and simplified command:
+
++-----+
+mvn -Preporting site-deploy
++-----+
+
+* History
#if( $project.version.endsWith( "SNAPSHOT" ) )
trunk: {{{https://svn.apache.org/viewvc/maven/pom/trunk/maven/maven-plugins/pom.xml?view=markup}$project.version}} ({{{https://svn.apache.org/viewvc/maven/pom/trunk/maven/maven-plugins/pom.xml?r1=HEAD&r2=1639498&diff_format=h}diff}})
diff --git a/maven-shared-components/pom.xml b/maven-shared-components/pom.xml
index 363dc37..7022dc8 100644
--- a/maven-shared-components/pom.xml
+++ b/maven-shared-components/pom.xml
@@ -54,7 +54,6 @@
<properties>
<maven.site.path>shared-archives/${project.artifactId}-LATEST</maven.site.path>
- <maven.site.scm-deploy>true</maven.site.scm-deploy>
</properties>
<build>
@@ -100,6 +99,30 @@
<tagBase>https://svn.apache.org/repos/asf/maven/shared/tags</tagBase>
</configuration>
</plugin>
+ <!-- publish mono-module site with "mvn site-deploy" -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <skipDeploy>true</skipDeploy><!-- don't deploy site with maven-site-plugin -->
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-scm-publish-plugin</artifactId>
+ <configuration>
+ <content>${project.reporting.outputDirectory}</content><!-- no need for site:stage, use target/site -->
+ </configuration>
+ <executions>
+ <execution>
+ <id>scm-publish</id>
+ <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
+ <goals>
+ <goal>publish-scm</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</pluginManagement>
</build>
diff --git a/maven-shared-components/src/site-docs/apt/index.apt.vm b/maven-shared-components/src/site-docs/apt/index.apt.vm
index f3a86c2..633bc01 100644
--- a/maven-shared-components/src/site-docs/apt/index.apt.vm
+++ b/maven-shared-components/src/site-docs/apt/index.apt.vm
@@ -31,6 +31,16 @@
This POM is the common parent of all of the {{{/shared/}Maven Shared Components}}
in the Apache Maven project.
+* Site Publication
+
+ Since Shared Components are always mono-module builds, this parent POM has configured <<<maven-scm-publish-plugin>>>
+ {{{/plugins/maven-scm-publish-plugin/examples/one-module-configuration.html}mono module optimization}}
+ to ease site build & deployment in only one integrated and simplified command:
+
++-----+
+mvn -Preporting site-deploy
++-----+
+
* History
#if( $project.version.endsWith( "SNAPSHOT" ) )
diff --git a/maven-skins/pom.xml b/maven-skins/pom.xml
index dba97d1..3f44286 100644
--- a/maven-skins/pom.xml
+++ b/maven-skins/pom.xml
@@ -55,7 +55,6 @@
<properties>
<maven.site.path>skins-archives/${project.artifactId}-LATEST</maven.site.path>
- <maven.site.scm-deploy>true</maven.site.scm-deploy>
<sitePluginVersion>3.5.1</sitePluginVersion>
</properties>
@@ -69,6 +68,30 @@
<arguments>-Papache-release,run-its</arguments>
</configuration>
</plugin>
+ <!-- publish mono-module site with "mvn site-deploy" -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <configuration>
+ <skipDeploy>true</skipDeploy><!-- don't deploy site with maven-site-plugin -->
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-scm-publish-plugin</artifactId>
+ <configuration>
+ <content>${project.reporting.outputDirectory}</content><!-- no need for site:stage, use target/site -->
+ </configuration>
+ <executions>
+ <execution>
+ <id>scm-publish</id>
+ <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
+ <goals>
+ <goal>publish-scm</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</pluginManagement>
</build>
diff --git a/pom.xml b/pom.xml
index dd847c2..670143e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -1352,38 +1352,5 @@
</plugins>
</reporting>
</profile>
- <profile>
- <id>site.scm-deploy</id>
- <activation>
- <property><name>maven.site.scm-deploy</name><value>deploy</value></property>
- </activation>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <configuration>
- <skipDeploy>true</skipDeploy><!-- don't deploy site with maven-site-plugin -->
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-scm-publish-plugin</artifactId>
- <configuration>
- <content>${project.reporting.outputDirectory}</content><!-- no need for site:stage, use target/site -->
- </configuration>
- <executions>
- <execution>
- <id>scm-publish</id>
- <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
- <goals>
- <goal>publish-scm</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
</profiles>
</project>
diff --git a/src/site-docs/apt/index.apt.vm b/src/site-docs/apt/index.apt.vm
index 7231e6c..0734499 100644
--- a/src/site-docs/apt/index.apt.vm
+++ b/src/site-docs/apt/index.apt.vm
@@ -41,7 +41,7 @@
See the LDAP extract for more accurate {{{https://people.apache.org/committers-by-project.html#maven}committers}}
and {{{https://people.apache.org/committers-by-project.html#maven-pmc}PMC members}} lists.
-The <<<reporting>>> Profile
+* The <<<reporting>>> Profile
This POM provides <<<reporting>>> profile for rendering documentation during site generation:
@@ -51,12 +51,12 @@
See {{{./plugins.html}Plugins report}} for a list of configured report plugins.
-The <<<jdk-toolchain>>> Profile
+* The <<<jdk-toolchain>>> Profile
This POM provides <<<jdk-toolchain>>> profile to activate JDK selection as a toolchain with version
requirement configured as minimum java version for the project.
-Site Publication
+* Site Publication
This POM prepares site publication to {{{/developers/website/index.html}Apache Maven's site svnpubsub}}.
Every inheriting POM needs to define <<<maven.site.path>>> property
@@ -75,7 +75,7 @@
</distributionManagement>
+-----+
- Once this is configured, the site is published with:
+ Once this is configured, the site can be published with:
+-----+
mvn -Preporting site site:stage
@@ -85,24 +85,7 @@
See {{{/developers/website/deploy-component-reference-documentation.html}deploying Maven components reference documentation}}
for more information.
-* Mono Module: <<<site.scm-deploy>>> profile
-
- If the build is mono module, previous 2-steps publication can be simplified by activating <<<site.scm-deploy>>> profile
- through <<<maven.site.scm-deploy>>> property
-
-+-----+
- <properties>
- <maven.site.scm-deploy>true</maven.site.scm-deploy>
- </properties>
-+-----+
-
- Once this is configured, the site can be published in only one command:
-
-+-----+
-mvn -Preporting site-deploy
-+-----+
-
-History
+* History
#if( $project.version.endsWith( "SNAPSHOT" ) )
#**##set( $prev = 30 )