This is an automated email from the ASF dual-hosted git repository.
Bukama pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-artifact-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new 8fc3113 Enable Maven 4 (#215)
8fc3113 is described below
commit 8fc31138122f7bfbe883858f6fe02e382f67a531
Author: Matthias Bünger <[email protected]>
AuthorDate: Fri Jun 12 06:14:51 2026 +0200
Enable Maven 4 (#215)
Summary:
* Used fixed versions for plugins (esp. install-p and deploy-p)
* Configure a-rat-p to exclude build-info.log.1 if IT's parent is a
specific maven-parent (and not default-parent)
* Adjust assertions
** File indexes in .buildinfo die additional -build.pom
** Adjust other remote-repository when using Maven 4 (onlye one remote-repo
in basedir, but not in every subproject folder)
** Exclude -build.pom when existence of .buildinfo is checked
---
.github/workflows/maven-verify.yml | 2 +
pom.xml | 2 +-
src/it/buildinfo-mono/verify.groovy | 24 +++--
src/it/buildinfo-multi/pom.xml | 20 +++-
src/it/buildinfo-multi/verify.groovy | 115 +++++++++++++++------
src/it/buildinfo-skip-install-deploy/pom.xml | 14 +++
src/it/buildinfo-skip-install-deploy/verify.groovy | 35 +++++--
src/it/compare-flatten/pom.xml | 14 +++
src/it/compare-flatten/verify.groovy | 31 ++++--
src/it/compare-mono/pom.xml | 18 ++++
src/it/compare-mono/verify.groovy | 12 ++-
src/it/compare-resume/pom.xml | 14 +++
src/it/git-multi/pom.xml | 14 +++
13 files changed, 255 insertions(+), 60 deletions(-)
diff --git a/.github/workflows/maven-verify.yml
b/.github/workflows/maven-verify.yml
index 932827c..ce4b500 100644
--- a/.github/workflows/maven-verify.yml
+++ b/.github/workflows/maven-verify.yml
@@ -25,3 +25,5 @@ jobs:
build:
name: Verify
uses: apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml@v4
+ with:
+ maven4-enabled: true
diff --git a/pom.xml b/pom.xml
index 06d660d..40865f4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugins</artifactId>
- <!-- also update in ITs: check-buildplan-info // compare-mono-->
+ <!-- also update in ITs: check-buildplan-info // compare-mono //
buildinfo-multi -->
<version>48</version>
<relativePath />
</parent>
diff --git a/src/it/buildinfo-mono/verify.groovy
b/src/it/buildinfo-mono/verify.groovy
index a2903ff..fa4cc1e 100644
--- a/src/it/buildinfo-mono/verify.groovy
+++ b/src/it/buildinfo-mono/verify.groovy
@@ -25,8 +25,17 @@ assert buildinfoFile.isFile()
// check generated buildinfo content
String buildinfo = buildinfoFile.text
-assert buildinfo.contains( "outputs.0.filename=mono-1.0-SNAPSHOT.pom" )
-assert buildinfo.contains( "outputs.1.filename=mono-1.0-SNAPSHOT.jar" )
+
+// In Maven 4 we build and consumer POM
+if (mavenVersion.startsWith('4.')) {
+ assert buildinfo.contains( "outputs.0.filename=mono-1.0-SNAPSHOT.pom" )
+ assert buildinfo.contains( "outputs.1.filename=mono-1.0-SNAPSHOT-build.pom" )
+ assert buildinfo.contains( "outputs.2.filename=mono-1.0-SNAPSHOT.jar" )
+} else {
+ assert buildinfo.contains( "outputs.0.filename=mono-1.0-SNAPSHOT.pom" )
+ assert buildinfo.contains( "outputs.1.filename=mono-1.0-SNAPSHOT.jar" )
+}
+
assert buildinfo.contains( "mvn.minimum.version=3.0.5" )
assert buildinfo.contains(
"mvn.rebuild-args=-Dmaven.session.versionFilter=e(org.slf4j:slf4j-api:(1.7.36,))"
)
@@ -36,12 +45,13 @@ assert local.isFile()
// check existence of buildinfo in remote repository
File remoteDir = new File( basedir,
"target/remote-repo/org/apache/maven/plugins/it/mono/1.0-SNAPSHOT")
- assert remoteDir.isDirectory()
+assert remoteDir.isDirectory()
+
int count = 0;
-for ( File f : remoteDir.listFiles() )
-{
- if ( f.getName().endsWith( ".pom" ) )
- {
+for ( File f : remoteDir.listFiles() ) {
+ // In Maven 4 there is the build-POM and also the new (but with old name)
consumer-POM
+ // The expected ".buildinfo" file is named as the consumer-POM
+ if ( f.getName().endsWith( ".pom" ) && !f.getName().endsWith( "build.pom"
)) {
File b = new File( remoteDir, f.getName().replace( ".pom", ".buildinfo" ) )
println b
assert b.isFile()
diff --git a/src/it/buildinfo-multi/pom.xml b/src/it/buildinfo-multi/pom.xml
index a74fac7..ab3ecc9 100644
--- a/src/it/buildinfo-multi/pom.xml
+++ b/src/it/buildinfo-multi/pom.xml
@@ -23,7 +23,7 @@
<parent>
<groupId>org.apache.maven</groupId>
<artifactId>maven-parent</artifactId>
- <version>39</version>
+ <version>48</version>
</parent>
<groupId>org.apache.maven.plugins.it</groupId>
@@ -91,6 +91,24 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <version>@version.apache-rat-plugin@</version>
+ <configuration>
+ <excludes>
+ <exclude>**/build.log.1</exclude>
+ </excludes>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ <phase>verify</phase>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/src/it/buildinfo-multi/verify.groovy
b/src/it/buildinfo-multi/verify.groovy
index d34039c..f457ed1 100644
--- a/src/it/buildinfo-multi/verify.groovy
+++ b/src/it/buildinfo-multi/verify.groovy
@@ -39,39 +39,79 @@ assert buildinfoFile.text.equals( ignoreJar.text )
// check generated aggregate buildinfo content
String buildinfo = ignoreJar.text
+
assert buildinfo.contains( "group-id=org.apache.maven.plugins.it" )
assert buildinfo.contains( "artifact-id=multi" )
assert buildinfo.contains( "version=1.0-SNAPSHOT" )
-assert buildinfo.contains(
"outputs.1.coordinates=org.apache.maven.plugins.it:multi-modA" )
-assert buildinfo.contains( "outputs.1.0.filename=multi-modA-1.0-SNAPSHOT.pom" )
-assert buildinfo.contains( "outputs.1.1.filename=multi-modA-1.0-SNAPSHOT.jar" )
-assert !buildinfo.contains( "outputs.1.2.filename=" )
-assert buildinfo.contains( "# ignored multi-modA-1.0-SNAPSHOT.spdx.json" )
-
-assert buildinfo.contains(
"outputs.2.coordinates=org.apache.maven.plugins.it:multi-modB" )
-assert buildinfo.contains( "outputs.2.0.filename=multi-modB-1.0-SNAPSHOT.pom" )
-assert buildinfo.contains( "outputs.2.1.filename=multi-modB-1.0-SNAPSHOT.jar" )
-assert !buildinfo.contains( "outputs.2.2.filename=" )
-assert buildinfo.contains( "# ignored multi-modB-1.0-SNAPSHOT.spdx.json" )
-
-assert buildinfo.contains(
"outputs.3.coordinates=org.apache.maven.plugins.it:ignore-all" )
-assert buildinfo.contains( "# ignored ignore-all-1.0-SNAPSHOT.pom" )
-assert buildinfo.contains( "# ignored ignore-all-1.0-SNAPSHOT.jar" )
-assert !buildinfo.contains( "outputs.3.0.filename=" )
-assert buildinfo.contains( "# ignored ignore-pom-1.0-SNAPSHOT.spdx.json" )
-
-assert buildinfo.contains(
"outputs.4.coordinates=org.apache.maven.plugins.it:ignore-pom" )
-assert buildinfo.contains( "# ignored ignore-pom-1.0-SNAPSHOT.pom" )
-assert buildinfo.contains( "outputs.4.0.filename=ignore-pom-1.0-SNAPSHOT.jar" )
-assert !buildinfo.contains( "outputs.4.1.filename=" )
-assert buildinfo.contains( "# ignored ignore-pom-1.0-SNAPSHOT.spdx.json" )
-
-assert buildinfo.contains(
"outputs.5.coordinates=org.apache.maven.plugins.it:ignore-jar" )
-assert buildinfo.contains( "outputs.5.0.filename=ignore-jar-1.0-SNAPSHOT.pom" )
-assert buildinfo.contains( "# ignored ignore-jar-1.0-SNAPSHOT.jar" )
-assert !buildinfo.contains( "outputs.5.1.filename=" )
-assert buildinfo.contains( "# ignored ignore-jar-1.0-SNAPSHOT.spdx.json" )
+// In Maven 4 we build and consumer POM
+if (mavenVersion.startsWith('4.')) {
+ assert buildinfo.contains(
"outputs.1.coordinates=org.apache.maven.plugins.it:multi-modA" )
+ assert buildinfo.contains(
"outputs.1.0.filename=multi-modA-1.0-SNAPSHOT.pom" )
+ assert buildinfo.contains(
"outputs.1.1.filename=multi-modA-1.0-SNAPSHOT-build.pom" )
+ assert buildinfo.contains(
"outputs.1.2.filename=multi-modA-1.0-SNAPSHOT.jar" )
+ assert !buildinfo.contains( "outputs.1.3.filename=" )
+ assert buildinfo.contains( "# ignored multi-modA-1.0-SNAPSHOT.spdx.json" )
+
+ assert buildinfo.contains(
"outputs.2.coordinates=org.apache.maven.plugins.it:multi-modB" )
+ assert buildinfo.contains(
"outputs.2.0.filename=multi-modB-1.0-SNAPSHOT.pom" )
+ assert buildinfo.contains(
"outputs.2.1.filename=multi-modB-1.0-SNAPSHOT-build.pom" )
+ assert buildinfo.contains(
"outputs.2.2.filename=multi-modB-1.0-SNAPSHOT.jar" )
+ assert !buildinfo.contains( "outputs.2.3.filename=" )
+ assert buildinfo.contains( "# ignored multi-modB-1.0-SNAPSHOT.spdx.json" )
+
+ assert buildinfo.contains(
"outputs.3.coordinates=org.apache.maven.plugins.it:ignore-all" )
+ assert buildinfo.contains( "# ignored ignore-all-1.0-SNAPSHOT.pom" )
+ assert buildinfo.contains( "# ignored ignore-all-1.0-SNAPSHOT-build.pom" )
+ assert buildinfo.contains( "# ignored ignore-all-1.0-SNAPSHOT.jar" )
+ assert !buildinfo.contains( "outputs.3.0.filename=" )
+ assert buildinfo.contains( "# ignored ignore-pom-1.0-SNAPSHOT.spdx.json" )
+
+ assert buildinfo.contains(
"outputs.4.coordinates=org.apache.maven.plugins.it:ignore-pom" )
+ assert buildinfo.contains( "# ignored ignore-pom-1.0-SNAPSHOT.pom" )
+ assert buildinfo.contains( "# ignored ignore-pom-1.0-SNAPSHOT-build.pom" )
+ assert buildinfo.contains(
"outputs.4.0.filename=ignore-pom-1.0-SNAPSHOT.jar" )
+ assert !buildinfo.contains( "outputs.4.1.filename=" )
+ assert buildinfo.contains( "# ignored ignore-pom-1.0-SNAPSHOT.spdx.json" )
+
+ assert buildinfo.contains(
"outputs.5.coordinates=org.apache.maven.plugins.it:ignore-jar" )
+ assert buildinfo.contains(
"outputs.5.0.filename=ignore-jar-1.0-SNAPSHOT.pom" )
+ assert buildinfo.contains(
"outputs.5.1.filename=ignore-jar-1.0-SNAPSHOT-build.pom" )
+ assert buildinfo.contains( "# ignored ignore-jar-1.0-SNAPSHOT.jar" )
+ assert !buildinfo.contains( "outputs.5.2.filename=" )
+ assert buildinfo.contains( "# ignored ignore-jar-1.0-SNAPSHOT.spdx.json" )
+} else {
+
+ assert buildinfo.contains(
"outputs.1.coordinates=org.apache.maven.plugins.it:multi-modA" )
+ assert buildinfo.contains(
"outputs.1.0.filename=multi-modA-1.0-SNAPSHOT.pom" )
+ assert buildinfo.contains(
"outputs.1.1.filename=multi-modA-1.0-SNAPSHOT.jar" )
+ assert !buildinfo.contains( "outputs.1.2.filename=" )
+ assert buildinfo.contains( "# ignored multi-modA-1.0-SNAPSHOT.spdx.json" )
+
+ assert buildinfo.contains(
"outputs.2.coordinates=org.apache.maven.plugins.it:multi-modB" )
+ assert buildinfo.contains(
"outputs.2.0.filename=multi-modB-1.0-SNAPSHOT.pom" )
+ assert buildinfo.contains(
"outputs.2.1.filename=multi-modB-1.0-SNAPSHOT.jar" )
+ assert !buildinfo.contains( "outputs.2.2.filename=" )
+ assert buildinfo.contains( "# ignored multi-modB-1.0-SNAPSHOT.spdx.json" )
+
+ assert buildinfo.contains(
"outputs.3.coordinates=org.apache.maven.plugins.it:ignore-all" )
+ assert buildinfo.contains( "# ignored ignore-all-1.0-SNAPSHOT.pom" )
+ assert buildinfo.contains( "# ignored ignore-all-1.0-SNAPSHOT.jar" )
+ assert !buildinfo.contains( "outputs.3.0.filename=" )
+ assert buildinfo.contains( "# ignored ignore-pom-1.0-SNAPSHOT.spdx.json" )
+
+ assert buildinfo.contains(
"outputs.4.coordinates=org.apache.maven.plugins.it:ignore-pom" )
+ assert buildinfo.contains( "# ignored ignore-pom-1.0-SNAPSHOT.pom" )
+ assert buildinfo.contains(
"outputs.4.0.filename=ignore-pom-1.0-SNAPSHOT.jar" )
+ assert !buildinfo.contains( "outputs.4.1.filename=" )
+ assert buildinfo.contains( "# ignored ignore-pom-1.0-SNAPSHOT.spdx.json" )
+
+ assert buildinfo.contains(
"outputs.5.coordinates=org.apache.maven.plugins.it:ignore-jar" )
+ assert buildinfo.contains(
"outputs.5.0.filename=ignore-jar-1.0-SNAPSHOT.pom" )
+ assert buildinfo.contains( "# ignored ignore-jar-1.0-SNAPSHOT.jar" )
+ assert !buildinfo.contains( "outputs.5.1.filename=" )
+ assert buildinfo.contains( "# ignored ignore-jar-1.0-SNAPSHOT.spdx.json" )
+}
assert !buildinfo.contains( ".buildinfo" )
assert buildinfo.contains( "mvn.aggregate.artifact-id=ignore-jar" )
@@ -81,12 +121,19 @@ File localIgnoreJar = new File( basedir,
"../../local-repo/org/apache/maven/plug
assert localIgnoreJar.isFile()
// check existence of buildinfo in remote repository
-File remoteDir = new File( basedir,
"ignore-jar/target/remote-repo/org/apache/maven/plugins/it/ignore-jar/1.0-SNAPSHOT"
)
+File remoteDir = null
+if (mavenVersion.startsWith('4.')) {
+ remoteDir = new File( basedir,
"target/remote-repo/org/apache/maven/plugins/it/ignore-jar/1.0-SNAPSHOT" )
+} else {
+ remoteDir = new File( basedir,
"ignore-jar/target/remote-repo/org/apache/maven/plugins/it/ignore-jar/1.0-SNAPSHOT"
)
+}
+
assert remoteDir.isDirectory()
-for ( File f : remoteDir.listFiles() )
-{
- if ( f.getName().endsWith( ".pom" ) )
- {
+
+for ( File f : remoteDir.listFiles() ) {
+ // In Maven 4 there is the build-POM and also the new (but with old name)
consumer-POM
+ // The expected ".buildinfo" file is named as the consumer-POM
+ if ( f.getName().endsWith( ".pom" ) && !f.getName().endsWith( "build.pom"
)) {
File b = new File( remoteDir, f.getName().replace( ".pom", ".buildinfo" ) )
println b
assert b.isFile()
diff --git a/src/it/buildinfo-skip-install-deploy/pom.xml
b/src/it/buildinfo-skip-install-deploy/pom.xml
index 43108f7..bee9b72 100644
--- a/src/it/buildinfo-skip-install-deploy/pom.xml
+++ b/src/it/buildinfo-skip-install-deploy/pom.xml
@@ -57,6 +57,20 @@
</modules>
<build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>@version.maven-install-plugin@</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>@version.maven-deploy-plugin@</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
<plugins>
<plugin>
<groupId>@project.groupId@</groupId>
diff --git a/src/it/buildinfo-skip-install-deploy/verify.groovy
b/src/it/buildinfo-skip-install-deploy/verify.groovy
index 2e4a479..1bcb7c8 100644
--- a/src/it/buildinfo-skip-install-deploy/verify.groovy
+++ b/src/it/buildinfo-skip-install-deploy/verify.groovy
@@ -35,10 +35,23 @@ assert buildinfo.contains( "artifact-id=multi" )
assert buildinfo.contains( "version=1.0-SNAPSHOT" )
assert buildinfo.contains(
"outputs.1.coordinates=org.apache.maven.plugins.it:multi-modA" )
assert buildinfo.contains( "outputs.1.0.filename=multi-modA-1.0-SNAPSHOT.pom" )
-assert buildinfo.contains( "outputs.1.1.filename=multi-modA-1.0-SNAPSHOT.jar" )
+
+if (mavenVersion.startsWith('4.')) {
+ assert buildinfo.contains(
"outputs.1.2.filename=multi-modA-1.0-SNAPSHOT.jar" )
+} else {
+ assert buildinfo.contains(
"outputs.1.1.filename=multi-modA-1.0-SNAPSHOT.jar" )
+}
+
assert buildinfo.contains(
"outputs.2.coordinates=org.apache.maven.plugins.it:multi-modB" )
assert buildinfo.contains( "outputs.2.0.filename=multi-modB-1.0-SNAPSHOT.pom" )
-assert buildinfo.contains( "outputs.2.1.filename=multi-modB-1.0-SNAPSHOT.jar" )
+
+if (mavenVersion.startsWith('4.')) {
+ assert buildinfo.contains(
"outputs.2.2.filename=multi-modB-1.0-SNAPSHOT.jar" )
+} else {
+ assert buildinfo.contains(
"outputs.2.1.filename=multi-modB-1.0-SNAPSHOT.jar" )
+}
+
+
assert !buildinfo.contains( ".buildinfo" )
assert !buildinfo.contains( "outputs.3" )
@@ -47,12 +60,20 @@ File localModB = new File( basedir,
"../../local-repo/org/apache/maven/plugins/i
assert localModB.isFile()
// check existence of buildinfo in remote repository
-File remoteDir = new File( basedir,
"modB/target/remote-repo/org/apache/maven/plugins/it/multi-modB/1.0-SNAPSHOT" )
+File remoteDir = null
+if (mavenVersion.startsWith('4.')) {
+ remoteDir = new File( basedir,
"target/remote-repo/org/apache/maven/plugins/it/multi-modB/1.0-SNAPSHOT" )
+} else {
+ remoteDir = new File( basedir,
"modB/target/remote-repo/org/apache/maven/plugins/it/multi-modB/1.0-SNAPSHOT" )
+}
+
assert remoteDir.isDirectory()
-for ( File f : remoteDir.listFiles() )
-{
- if ( f.getName().endsWith( ".pom" ) )
- {
+
+// check if there is a .buildinfo for the first .pom file
+for ( File f : remoteDir.listFiles() ) {
+ // In Maven 4 there is the build-POM and also the new (but with old name)
consumer-POM
+ // The expected ".buildinfo" file is named as the consumer-POM
+ if ( f.getName().endsWith( ".pom" ) && !f.getName().endsWith( "build.pom"
)) {
File b = new File( remoteDir, f.getName().replace( ".pom", ".buildinfo" ) )
println b
assert b.isFile()
diff --git a/src/it/compare-flatten/pom.xml b/src/it/compare-flatten/pom.xml
index f613b6e..a314eb6 100644
--- a/src/it/compare-flatten/pom.xml
+++ b/src/it/compare-flatten/pom.xml
@@ -53,6 +53,20 @@
</modules>
<build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>@version.maven-install-plugin@</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>@version.maven-deploy-plugin@</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
<plugins>
<plugin>
<groupId>@project.groupId@</groupId>
diff --git a/src/it/compare-flatten/verify.groovy
b/src/it/compare-flatten/verify.groovy
index 1ce3451..48d0f3d 100644
--- a/src/it/compare-flatten/verify.groovy
+++ b/src/it/compare-flatten/verify.groovy
@@ -19,13 +19,28 @@
*/
String compare = new File( basedir, 'target/flatten-1.0-SNAPSHOT.buildcompare'
).text
-assert compare.contains( 'okFiles="flatten-1.0-SNAPSHOT.pom
flatten-modB-1.0-SNAPSHOT.pom flatten-modA-1.0-SNAPSHOT.pom"' )
-assert new File( basedir, 'flattened-pom.xml' ).text == new File( basedir,
'target/reference/org.apache.maven.plugins.it/flatten-1.0-SNAPSHOT.pom' ).text
-assert new File( basedir, 'modA/flattened-pom.xml' ).text == new File(
basedir,
'target/reference/org.apache.maven.plugins.it/flatten-modA-1.0-SNAPSHOT.pom'
).text
-assert new File( basedir, 'modB/pom.xml' ).text == new File( basedir,
'target/reference/org.apache.maven.plugins.it/flatten-modB-1.0-SNAPSHOT.pom'
).text
+// In Maven 4 the build-bom gets flatten. Its existence also changes the index
in buildinfo
+if (mavenVersion.startsWith('4.')) {
+ assert compare.contains( 'okFiles="flatten-1.0-SNAPSHOT.pom
flatten-1.0-SNAPSHOT-build.pom flatten-modB-1.0-SNAPSHOT.pom
flatten-modB-1.0-SNAPSHOT-build.pom flatten-modA-1.0-SNAPSHOT.pom
flatten-modA-1.0-SNAPSHOT-build.pom"' )
-String buildinfo = new File( basedir, 'target/flatten-1.0-SNAPSHOT.buildinfo'
).text
-assert buildinfo.contains( "outputs.0.0.length=" + new File( basedir,
'flattened-pom.xml' ).size() )
-assert buildinfo.contains( "outputs.1.0.length=" + new File( basedir,
'modB/pom.xml' ).size() )
-assert buildinfo.contains( "outputs.2.0.length=" + new File( basedir,
'modA/flattened-pom.xml' ).size() )
+ assert new File( basedir, 'flattened-pom.xml' ).text == new File( basedir,
'target/reference/org.apache.maven.plugins.it/flatten-1.0-SNAPSHOT-build.pom'
).text
+ assert new File( basedir, 'modA/flattened-pom.xml' ).text == new File(
basedir,
'target/reference/org.apache.maven.plugins.it/flatten-modA-1.0-SNAPSHOT-build.pom'
).text
+ assert new File( basedir, 'modB/pom.xml' ).text == new File( basedir,
'target/reference/org.apache.maven.plugins.it/flatten-modB-1.0-SNAPSHOT-build.pom'
).text
+
+ String buildinfo = new File( basedir,
'target/flatten-1.0-SNAPSHOT.buildinfo' ).text
+ assert buildinfo.contains( "outputs.0.1.length=" + new File( basedir,
'flattened-pom.xml' ).size() )
+ assert buildinfo.contains( "outputs.1.1.length=" + new File( basedir,
'modB/pom.xml' ).size() )
+ assert buildinfo.contains( "outputs.2.1.length=" + new File( basedir,
'modA/flattened-pom.xml' ).size() )
+} else {
+ assert compare.contains( 'okFiles="flatten-1.0-SNAPSHOT.pom
flatten-modB-1.0-SNAPSHOT.pom flatten-modA-1.0-SNAPSHOT.pom"' )
+
+ assert new File( basedir, 'flattened-pom.xml' ).text == new File( basedir,
'target/reference/org.apache.maven.plugins.it/flatten-1.0-SNAPSHOT.pom' ).text
+ assert new File( basedir, 'modA/flattened-pom.xml' ).text == new File(
basedir,
'target/reference/org.apache.maven.plugins.it/flatten-modA-1.0-SNAPSHOT.pom'
).text
+ assert new File( basedir, 'modB/pom.xml' ).text == new File( basedir,
'target/reference/org.apache.maven.plugins.it/flatten-modB-1.0-SNAPSHOT.pom'
).text
+
+ String buildinfo = new File( basedir,
'target/flatten-1.0-SNAPSHOT.buildinfo' ).text
+ assert buildinfo.contains( "outputs.0.0.length=" + new File( basedir,
'flattened-pom.xml' ).size() )
+ assert buildinfo.contains( "outputs.1.0.length=" + new File( basedir,
'modB/pom.xml' ).size() )
+ assert buildinfo.contains( "outputs.2.0.length=" + new File( basedir,
'modA/flattened-pom.xml' ).size() )
+}
diff --git a/src/it/compare-mono/pom.xml b/src/it/compare-mono/pom.xml
index 920231f..50c8f05 100644
--- a/src/it/compare-mono/pom.xml
+++ b/src/it/compare-mono/pom.xml
@@ -91,6 +91,24 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.rat</groupId>
+ <artifactId>apache-rat-plugin</artifactId>
+ <version>@version.apache-rat-plugin@</version>
+ <configuration>
+ <excludes>
+ <exclude>**/build.log.1</exclude>
+ </excludes>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ <phase>verify</phase>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</project>
diff --git a/src/it/compare-mono/verify.groovy
b/src/it/compare-mono/verify.groovy
index 71523fe..fcf257c 100644
--- a/src/it/compare-mono/verify.groovy
+++ b/src/it/compare-mono/verify.groovy
@@ -26,10 +26,18 @@ assert compareFile.isFile()
String compare = compareFile.text
assert compare.contains( "version=1.0-SNAPSHOT" )
-assert compare.contains( "ok=1" )
+
+// In Maven 4 we build and consumer POM
+if (mavenVersion.startsWith('4.')) {
+ assert compare.contains( "ok=2" )
+ assert compare.contains( 'okFiles="mono-1.0-SNAPSHOT.pom
mono-1.0-SNAPSHOT-build.pom"' )
+} else {
+ assert compare.contains( "ok=1" )
+ assert compare.contains( 'okFiles="mono-1.0-SNAPSHOT.pom"' )
+}
+
assert compare.contains( "ko=1" )
assert compare.contains( "ignored=1" )
-assert compare.contains( 'okFiles="mono-1.0-SNAPSHOT.pom"' )
assert compare.contains( 'koFiles="mono-1.0-SNAPSHOT.jar"' )
assert compare.contains( 'ignoredFiles="mono-1.0-SNAPSHOT.spdx.json"' )
if( File.separator == '/' ) {
diff --git a/src/it/compare-resume/pom.xml b/src/it/compare-resume/pom.xml
index 83f40a0..5992880 100644
--- a/src/it/compare-resume/pom.xml
+++ b/src/it/compare-resume/pom.xml
@@ -52,6 +52,20 @@
</modules>
<build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>@version.maven-install-plugin@</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>@version.maven-deploy-plugin@</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
<plugins>
<plugin>
<groupId>@project.groupId@</groupId>
diff --git a/src/it/git-multi/pom.xml b/src/it/git-multi/pom.xml
index 91c20c1..9f60ee5 100644
--- a/src/it/git-multi/pom.xml
+++ b/src/it/git-multi/pom.xml
@@ -42,6 +42,20 @@
</properties>
<build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>@version.maven-install-plugin@</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <version>@version.maven-deploy-plugin@</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
<plugins>
<plugin>
<groupId>pl.project13.maven</groupId><!-- older groupId, for version
4.xx -->