You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by sl...@apache.org on 2026/10/13 23:28:37 UTC
(maven-dependency-plugin) branch master updated: Run integration tests in parallel
This is an automated email from the ASF dual-hosted git repository.
slachiewicz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/maven-dependency-plugin.git
The following commit(s) were added to refs/heads/master by this push:
new a066836b Run integration tests in parallel
a066836b is described below
commit a066836b5a4ed58208c952e7878fab7bd1ba8301
Author: Sylwester Lachiewicz <sl...@apache.org>
AuthorDate: Wed Oct 14 01:10:48 2026 +0200
Run integration tests in parallel
ITs that delete fixtures from, or assert on, the shared local repository
stay serial in their own execution: run in parallel, get-artifact-no-transitive
sees get-artifact-transitive appear while it asserts the artifact is absent.
Forked builds skip C2 and use the serial GC, which carries most of the gain
once ITs compete for CPU.
---
pom.xml | 55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 54 insertions(+), 1 deletion(-)
diff --git a/pom.xml b/pom.xml
index 3adcc9ef..b1241ad6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -90,6 +90,7 @@ under the License.
</distributionManagement>
<properties>
+ <invoker.parallelThreads>0.75C</invoker.parallelThreads>
<javaVersion>8</javaVersion>
<mavenVersion>3.9.16</mavenVersion>
<resolverVersion>1.9.27</resolverVersion>
@@ -442,18 +443,37 @@ under the License.
<goal>process-sources</goal>
</goals>
<projectsDirectory>src/it/projects</projectsDirectory>
+ <!-- ITs that delete fixtures from, or assert on, the shared local repository run
+ serially in the integration-test-shared-repo execution below -->
<pomExcludes>
<pomExclude>purge-local-repository-bad-pom/pom.xml</pomExclude>
+ <pomExclude>get-artifact/pom.xml</pomExclude>
+ <pomExclude>get-artifact-maven-plugin/pom.xml</pomExclude>
+ <pomExclude>get-artifact-no-transitive/pom.xml</pomExclude>
+ <pomExclude>get-gav/pom.xml</pomExclude>
+ <pomExclude>get-remote-repositories/pom.xml</pomExclude>
+ <pomExclude>get-remote-repositories-pom-config/pom.xml</pomExclude>
+ <pomExclude>copy-from-remote-repository/pom.xml</pomExclude>
+ <pomExclude>unpack-from-remote-repository/pom.xml</pomExclude>
+ <pomExclude>mdep-592-addparentpoms-custom-repo/pom.xml</pomExclude>
+ <pomExclude>mdep-803-parent-poms-with-classifier/pom.xml</pomExclude>
+ <pomExclude>build-classpath-output-file-and-property/pom.xml</pomExclude>
+ <pomExclude>copy-dependencies-graphroots/pom.xml</pomExclude>
+ <pomExclude>purge-local-repository*/pom.xml</pomExclude>
</pomExcludes>
<pomIncludes>
<pomInclude>*/pom.xml</pomInclude>
<pomInclude>add-dependency/*/pom.xml</pomInclude>
<pomInclude>remove-dependency/*/pom.xml</pomInclude>
- <pomInclude>purge-local-repository-without-pom</pomInclude>
</pomIncludes>
<!-- for mrm -->
<settingsFile>src/it/mrm/settings.xml</settingsFile>
<addTestClassPath>true</addTestClassPath>
+ <parallelThreads>${invoker.parallelThreads}</parallelThreads>
+ <environmentVariables>
+ <!-- each IT is a short-lived JVM: C2 compilation and parallel GC only add startup time -->
+ <JAVA_TOOL_OPTIONS>-XX:TieredStopAtLevel=1 -XX:+UseSerialGC</JAVA_TOOL_OPTIONS>
+ </environmentVariables>
</configuration>
<dependencies>
<!-- dependencies used only in verification scripts -->
@@ -463,6 +483,39 @@ under the License.
<version>1.23.2</version>
</dependency>
</dependencies>
+ <executions>
+ <execution>
+ <id>integration-test-shared-repo</id>
+ <goals>
+ <goal>integration-test</goal>
+ <goal>verify</goal>
+ </goals>
+ <configuration>
+ <parallelThreads>1</parallelThreads>
+ <reportsDirectory>${project.build.directory}/invoker-reports-shared-repo</reportsDirectory>
+ <summaryFile>${project.build.directory}/invoker-reports-shared-repo/invoker-summary.txt</summaryFile>
+ <pomIncludes combine.self="override">
+ <pomInclude>get-artifact/pom.xml</pomInclude>
+ <pomInclude>get-artifact-maven-plugin/pom.xml</pomInclude>
+ <pomInclude>get-artifact-no-transitive/pom.xml</pomInclude>
+ <pomInclude>get-gav/pom.xml</pomInclude>
+ <pomInclude>get-remote-repositories/pom.xml</pomInclude>
+ <pomInclude>get-remote-repositories-pom-config/pom.xml</pomInclude>
+ <pomInclude>copy-from-remote-repository/pom.xml</pomInclude>
+ <pomInclude>unpack-from-remote-repository/pom.xml</pomInclude>
+ <pomInclude>mdep-592-addparentpoms-custom-repo/pom.xml</pomInclude>
+ <pomInclude>mdep-803-parent-poms-with-classifier/pom.xml</pomInclude>
+ <pomInclude>build-classpath-output-file-and-property/pom.xml</pomInclude>
+ <pomInclude>copy-dependencies-graphroots/pom.xml</pomInclude>
+ <pomInclude>purge-local-repository*/pom.xml</pomInclude>
+ <pomInclude>purge-local-repository-without-pom</pomInclude>
+ </pomIncludes>
+ <pomExcludes combine.self="override">
+ <pomExclude>purge-local-repository-bad-pom/pom.xml</pomExclude>
+ </pomExcludes>
+ </configuration>
+ </execution>
+ </executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>