This is an automated email from the ASF dual-hosted git repository.
aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-math.git
The following commit(s) were added to refs/heads/master by this push:
new c9b95e6 Avoid existing site checkout in all child modules
c9b95e6 is described below
commit c9b95e6eafe3250735dc7fbebdb2030e80935ea0
Author: Alex Herbert <[email protected]>
AuthorDate: Fri Aug 13 14:11:47 2021 +0100
Avoid existing site checkout in all child modules
---
pom.xml | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++----------
1 file changed, 84 insertions(+), 15 deletions(-)
diff --git a/pom.xml b/pom.xml
index d9990d1..4100484 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,6 +69,7 @@
<math.commons.math3.version>3.6.1</math.commons.math3.version>
<math.junit5.version>5.7.2</math.junit5.version>
<math.surefire.version>3.0.0-M5</math.surefire.version>
+ <math.antrun.version>1.8</math.antrun.version>
<!-- Workaround to avoid duplicating config files. -->
<math.parent.dir>${basedir}</math.parent.dir>
@@ -94,6 +95,10 @@
<math.jgit.buildnumber.version>1.2.10</math.jgit.buildnumber.version>
<implementation.build>${git.revision};
${maven.build.timestamp}</implementation.build>
+ <!-- Workaround to avoid the SVN site checkout in all modules.
+ This flag should be deactivated by child modules. -->
+ <perform.site.checkout>true</perform.site.checkout>
+
<!--
Override so that "mvn commons:download-page" will generates a web page
referring to the files created by the "dist-archive" module.
@@ -597,10 +602,25 @@
</build>
</profile>
<profile>
+ <!-- Override a parent property if the SVN site checkout should not be
performed.
+ This should activate for child modules. -->
+ <id>is-child-module</id>
+ <activation>
+ <file>
+ <missing>${basedir}/CONTRIBUTING.md</missing>
+ </file>
+ </activation>
+ <properties>
+ <perform.site.checkout>false</perform.site.checkout>
+ </properties>
+ </profile>
+ <profile>
+ <!-- Runs if the SVN site checkout does not exist.
+ This is either obtained using svn (for the parent) or an empty
directory is created. -->
<id>setup-checkout</id>
<activation>
<file>
- <missing>site-content</missing>
+ <missing>${commons.scmPubCheckoutDirectory}</missing>
</file>
</activation>
<build>
@@ -608,7 +628,25 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
+ <version>${math.antrun.version}</version>
<executions>
+ <!-- For multi-module builds, only the parent directory requires
a site checkout.
+ This task will create an empty directory as the site
checkout is missing. -->
+ <execution>
+ <id>empty-checkout</id>
+ <phase>pre-site</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target name="empty-checkout"
unless="${perform.site.checkout}">
+ <mkdir dir="${commons.scmPubCheckoutDirectory}"/>
+ <echo
file="${commons.scmPubCheckoutDirectory}${file.separator}README"
+ message="The '${commons.scmPubCheckoutDirectory}'
directory is empty in child modules."/>
+ </target>
+ </configuration>
+ </execution>
+ <!-- Checkout the top-level directory of the site using SVN. -->
<execution>
<id>prepare-checkout</id>
<phase>pre-site</phase>
@@ -616,22 +654,53 @@
<goal>run</goal>
</goals>
<configuration>
- <tasks>
- <exec executable="svn">
- <arg line="checkout --depth immediates
${commons.scmPubUrl} ${commons.scmPubCheckoutDirectory}"/>
- </exec>
-
- <exec executable="svn">
- <arg line="update --set-depth exclude
${commons.scmPubCheckoutDirectory}/javadocs"/>
+ <target name="prepare-checkout"
if="${perform.site.checkout}">
+ <!-- Top level directory -->
+ <exec executable="svn" failifexecutionfails="false">
+ <arg line="checkout --depth immediates
${commons.scmPubUrl} ${commons.scmPubCheckoutDirectory}" />
</exec>
+ <!-- Create the directory in the event that no svn
exectuable is on the path -->
+ <mkdir dir="${commons.scmPubCheckoutDirectory}"/>
- <pathconvert pathsep=" " property="dirs">
- <dirset dir="${commons.scmPubCheckoutDirectory}"
includes="*"/>
- </pathconvert>
- <exec executable="svn">
- <arg line="update --set-depth infinity ${dirs}"/>
- </exec>
- </tasks>
+ <echo file="${commons.scmPubCheckoutDirectory}.README">The
'${commons.scmPubCheckoutDirectory}' directory is controlled by "subversion".
+Running "svn up" will download *all* the files of the live web site at
+ https://commons.apache.org/math
+This is avoided by creating an empty directory when svn is not available.
+ </echo>
+ </target>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <!-- Allow the SVN site checkout to be removed in the clean phase. -->
+ <id>clean-checkout</id>
+ <activation>
+ <file>
+ <exists>${commons.scmPubCheckoutDirectory}</exists>
+ </file>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>${math.antrun.version}</version>
+ <executions>
+ <execution>
+ <id>remove-checkout</id>
+ <phase>clean</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target name="remove-checkout">
+ <delete dir="${commons.scmPubCheckoutDirectory}"
quiet="true"/>
+ <delete file="${commons.scmPubCheckoutDirectory}.README"
quiet="true"/>
+ </target>
</configuration>
</execution>
</executions>