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 -->

Reply via email to