Upgrade to Maven 3.10.0

Closes gh-51911
This commit is contained in:
Moritz Halbritter
2026-10-01 12:13:12 +02:00
parent c15bda5b50
commit 56facf449c
6 changed files with 30 additions and 25 deletions
@@ -53,6 +53,7 @@ dependencies {
optional("org.cyclonedx:cyclonedx-gradle-plugin") {
exclude(group: "javax.annotation", module: "javax.annotation-api")
exclude(group: "javax.inject", module: "javax.inject")
exclude(group: "org.slf4j", module: "jcl-over-slf4j")
}
optional("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
@@ -67,6 +67,7 @@ dependencies {
testImplementation("org.apache.maven:maven-core") {
exclude(group: "javax.annotation", module: "javax.annotation-api")
exclude(group: "javax.inject", module: "javax.inject")
exclude(group: "org.slf4j", module: "jcl-over-slf4j")
}
testImplementation("org.apache.maven.shared:maven-common-artifact-filters") {
exclude(group: "javax.annotation", module: "javax.annotation-api")
+1 -1
View File
@@ -16,7 +16,7 @@ jacksonVersion=3.1.5
javaFormatVersion=0.0.48
junitJupiterVersion=6.0.3
kotlinVersion=2.2.21
mavenVersion=3.9.13
mavenVersion=3.10.0
mockitoVersion=5.20.0
nativeBuildToolsVersion=0.11.5
nullabilityPluginVersion=0.0.15
@@ -162,16 +162,16 @@ bom {
]
}
}
library("Maven Resolver", "1.9.27") {
library("Maven Resolver", "2.0.24") {
group("org.apache.maven.resolver") {
modules = [
"maven-resolver-api",
"maven-resolver-connector-basic",
"maven-resolver-impl",
"maven-resolver-spi",
"maven-resolver-supplier",
"maven-resolver-supplier-mvn3",
"maven-resolver-transport-apache",
"maven-resolver-transport-file",
"maven-resolver-transport-http",
"maven-resolver-util"
]
}
@@ -47,7 +47,7 @@ dependencies {
compileOnly("org.springframework.data:spring-data-redis")
implementation("jakarta.inject:jakarta.inject-api")
implementation("org.apache.maven.resolver:maven-resolver-supplier") {
implementation("org.apache.maven.resolver:maven-resolver-supplier-mvn3") {
exclude group: "org.slf4j", module: "jcl-over-slf4j"
}
@@ -24,6 +24,7 @@ import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -38,18 +39,17 @@ import java.util.jar.JarFile;
import java.util.regex.Pattern;
import java.util.stream.Stream;
import org.apache.maven.repository.internal.MavenRepositorySystemUtils;
import org.eclipse.aether.DefaultRepositorySystemSession;
import org.eclipse.aether.RepositorySystem;
import org.eclipse.aether.RepositorySystemSession.CloseableSession;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.collection.CollectRequest;
import org.eclipse.aether.graph.Dependency;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.resolution.ArtifactResult;
import org.eclipse.aether.resolution.DependencyRequest;
import org.eclipse.aether.resolution.DependencyResult;
import org.eclipse.aether.supplier.RepositorySystemSupplier;
import org.eclipse.aether.supplier.SessionBuilderSupplier;
import org.springframework.core.annotation.MergedAnnotation;
import org.springframework.core.annotation.MergedAnnotations;
@@ -64,6 +64,7 @@ import org.springframework.util.StringUtils;
*
* @author Andy Wilkinson
* @author Christoph Dreis
* @author Moritz Halbritter
*/
final class ModifiedClassPathClassLoader extends URLClassLoader {
@@ -241,27 +242,29 @@ final class ModifiedClassPathClassLoader extends URLClassLoader {
private static List<URL> resolveCoordinates(String[] coordinates) {
return doWithRepositorySystem((repositorySystem) -> {
Exception latestFailure = null;
DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
session.setSystemProperties(System.getProperties());
LocalRepository localRepository = new LocalRepository(System.getProperty("user.home") + "/.m2/repository");
Path localRepository = Path.of(System.getProperty("user.home"), ".m2", "repository");
RemoteRepository remoteRepository = new RemoteRepository.Builder("central", "default",
"https://repo.maven.apache.org/maven2")
.build();
session.setLocalRepositoryManager(repositorySystem.newLocalRepositoryManager(session, localRepository));
for (int i = 0; i < MAX_RESOLUTION_ATTEMPTS; i++) {
CollectRequest collectRequest = new CollectRequest(null, Arrays.asList(remoteRepository));
collectRequest.setDependencies(createDependencies(coordinates));
DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, null);
try {
DependencyResult result = repositorySystem.resolveDependencies(session, dependencyRequest);
List<URL> resolvedArtifacts = new ArrayList<>();
for (ArtifactResult artifact : result.getArtifactResults()) {
resolvedArtifacts.add(artifact.getArtifact().getFile().toURI().toURL());
try (CloseableSession session = new SessionBuilderSupplier(repositorySystem).get()
.setSystemProperties(System.getProperties())
.withLocalRepositoryBaseDirectories(localRepository)
.build()) {
for (int i = 0; i < MAX_RESOLUTION_ATTEMPTS; i++) {
CollectRequest collectRequest = new CollectRequest(null, Arrays.asList(remoteRepository));
collectRequest.setDependencies(createDependencies(coordinates));
DependencyRequest dependencyRequest = new DependencyRequest(collectRequest, null);
try {
DependencyResult result = repositorySystem.resolveDependencies(session, dependencyRequest);
List<URL> resolvedArtifacts = new ArrayList<>();
for (ArtifactResult artifact : result.getArtifactResults()) {
resolvedArtifacts.add(artifact.getArtifact().getPath().toUri().toURL());
}
return resolvedArtifacts;
}
catch (Exception ex) {
latestFailure = ex;
}
return resolvedArtifacts;
}
catch (Exception ex) {
latestFailure = ex;
}
}
throw new IllegalStateException("Resolution failed after " + MAX_RESOLUTION_ATTEMPTS + " attempts",