Merge branch '2.7.x'
This commit is contained in:
commit
91060a94d4
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2021 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -26,6 +26,7 @@ import java.util.LinkedList;
|
|||
import java.util.List;
|
||||
import java.util.ServiceLoader;
|
||||
|
||||
import groovy.grape.GrapeEngine;
|
||||
import groovy.lang.GroovyClassLoader;
|
||||
import groovy.lang.GroovyClassLoader.ClassCollector;
|
||||
import groovy.lang.GroovyCodeSource;
|
||||
|
@ -44,10 +45,9 @@ import org.codehaus.groovy.transform.ASTTransformation;
|
|||
import org.codehaus.groovy.transform.ASTTransformationVisitor;
|
||||
|
||||
import org.springframework.boot.cli.compiler.dependencies.SpringBootDependenciesDependencyManagement;
|
||||
import org.springframework.boot.cli.compiler.grape.AetherGrapeEngine;
|
||||
import org.springframework.boot.cli.compiler.grape.AetherGrapeEngineFactory;
|
||||
import org.springframework.boot.cli.compiler.grape.DependencyResolutionContext;
|
||||
import org.springframework.boot.cli.compiler.grape.GrapeEngineInstaller;
|
||||
import org.springframework.boot.cli.compiler.grape.MavenResolverGrapeEngineFactory;
|
||||
import org.springframework.boot.cli.util.ResourceUtils;
|
||||
import org.springframework.core.annotation.AnnotationAwareOrderComparator;
|
||||
import org.springframework.util.ClassUtils;
|
||||
|
@ -96,7 +96,7 @@ public class GroovyCompiler {
|
|||
DependencyResolutionContext resolutionContext = new DependencyResolutionContext();
|
||||
resolutionContext.addDependencyManagement(new SpringBootDependenciesDependencyManagement());
|
||||
|
||||
AetherGrapeEngine grapeEngine = AetherGrapeEngineFactory.create(this.loader,
|
||||
GrapeEngine grapeEngine = MavenResolverGrapeEngineFactory.create(this.loader,
|
||||
configuration.getRepositoryConfiguration(), resolutionContext, configuration.isQuiet());
|
||||
|
||||
GrapeEngineInstaller.install(grapeEngine);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -44,15 +44,15 @@ import org.eclipse.aether.util.filter.DependencyFilterUtils;
|
|||
|
||||
/**
|
||||
* A {@link GrapeEngine} implementation that uses
|
||||
* <a href="https://eclipse.org/aether">Aether</a>, the dependency resolution system used
|
||||
* by Maven.
|
||||
* <a href="https://maven.apache.org/resolver/index.html">Maven Resolver</a>, the
|
||||
* dependency resolution system used by Maven.
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
* @author Phillip Webb
|
||||
* @since 1.0.0
|
||||
* @since 2.5.9
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
public class AetherGrapeEngine implements GrapeEngine {
|
||||
public class MavenResolverGrapeEngine implements GrapeEngine {
|
||||
|
||||
private static final Collection<Exclusion> WILDCARD_EXCLUSION;
|
||||
|
||||
|
@ -74,7 +74,7 @@ public class AetherGrapeEngine implements GrapeEngine {
|
|||
|
||||
private final List<RemoteRepository> repositories;
|
||||
|
||||
public AetherGrapeEngine(GroovyClassLoader classLoader, RepositorySystem repositorySystem,
|
||||
public MavenResolverGrapeEngine(GroovyClassLoader classLoader, RepositorySystem repositorySystem,
|
||||
DefaultRepositorySystemSession repositorySystemSession, List<RemoteRepository> remoteRepositories,
|
||||
DependencyResolutionContext resolutionContext, boolean quiet) {
|
||||
this.classLoader = classLoader;
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -36,14 +36,14 @@ import org.eclipse.aether.transport.file.FileTransporterFactory;
|
|||
import org.eclipse.aether.transport.http.HttpTransporterFactory;
|
||||
|
||||
/**
|
||||
* Utility class to create a pre-configured {@link AetherGrapeEngine}.
|
||||
* Utility class to create a pre-configured {@link MavenResolverGrapeEngine}.
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
* @since 1.0.0
|
||||
* @since 2.5.9
|
||||
*/
|
||||
public abstract class AetherGrapeEngineFactory {
|
||||
public abstract class MavenResolverGrapeEngineFactory {
|
||||
|
||||
public static AetherGrapeEngine create(GroovyClassLoader classLoader,
|
||||
public static MavenResolverGrapeEngine create(GroovyClassLoader classLoader,
|
||||
List<RepositoryConfiguration> repositoryConfigurations,
|
||||
DependencyResolutionContext dependencyResolutionContext, boolean quiet) {
|
||||
RepositorySystem repositorySystem = createServiceLocator().getService(RepositorySystem.class);
|
||||
|
@ -54,7 +54,7 @@ public abstract class AetherGrapeEngineFactory {
|
|||
autoConfiguration.apply(repositorySystemSession, repositorySystem);
|
||||
}
|
||||
new DefaultRepositorySystemSessionAutoConfiguration().apply(repositorySystemSession, repositorySystem);
|
||||
return new AetherGrapeEngine(classLoader, repositorySystem, repositorySystemSession,
|
||||
return new MavenResolverGrapeEngine(classLoader, repositorySystem, repositorySystemSession,
|
||||
createRepositories(repositoryConfigurations), dependencyResolutionContext, quiet);
|
||||
}
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2019 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -20,8 +20,8 @@ import org.eclipse.aether.DefaultRepositorySystemSession;
|
|||
import org.eclipse.aether.RepositorySystem;
|
||||
|
||||
/**
|
||||
* Strategy that can be used to apply some auto-configuration during the installation of
|
||||
* an {@link AetherGrapeEngine}.
|
||||
* Strategy that can be used to apply some auto-configuration during the installation of a
|
||||
* {@link MavenResolverGrapeEngine}.
|
||||
*
|
||||
* @author Andy Wilkinson
|
||||
* @since 1.0.0
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright 2012-2020 the original author or authors.
|
||||
* Copyright 2012-2022 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
|
@ -26,6 +26,7 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import groovy.grape.GrapeEngine;
|
||||
import groovy.lang.GroovyClassLoader;
|
||||
import org.eclipse.aether.DefaultRepositorySystemSession;
|
||||
import org.eclipse.aether.repository.Authentication;
|
||||
|
@ -43,7 +44,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
|
|||
*
|
||||
* @author Andy Wilkinson
|
||||
*/
|
||||
class AetherGrapeEngineTests {
|
||||
class MavenResolverGrapeEngineTests {
|
||||
|
||||
private final GroovyClassLoader groovyClassLoader = new GroovyClassLoader();
|
||||
|
||||
|
@ -53,14 +54,14 @@ class AetherGrapeEngineTests {
|
|||
private final RepositoryConfiguration springSnapshot = new RepositoryConfiguration("spring-snapshot",
|
||||
URI.create("https://repo.spring.io/snapshot"), true);
|
||||
|
||||
private AetherGrapeEngine createGrapeEngine(RepositoryConfiguration... additionalRepositories) {
|
||||
private GrapeEngine createGrapeEngine(RepositoryConfiguration... additionalRepositories) {
|
||||
List<RepositoryConfiguration> repositoryConfigurations = new ArrayList<>();
|
||||
repositoryConfigurations
|
||||
.add(new RepositoryConfiguration("central", URI.create("https://repo1.maven.org/maven2"), false));
|
||||
repositoryConfigurations.addAll(Arrays.asList(additionalRepositories));
|
||||
DependencyResolutionContext dependencyResolutionContext = new DependencyResolutionContext();
|
||||
dependencyResolutionContext.addDependencyManagement(new SpringBootDependenciesDependencyManagement());
|
||||
return AetherGrapeEngineFactory.create(this.groovyClassLoader, repositoryConfigurations,
|
||||
return MavenResolverGrapeEngineFactory.create(this.groovyClassLoader, repositoryConfigurations,
|
||||
dependencyResolutionContext, false);
|
||||
}
|
||||
|
||||
|
@ -75,7 +76,7 @@ class AetherGrapeEngineTests {
|
|||
@Test
|
||||
void proxySelector() {
|
||||
doWithCustomUserHome(() -> {
|
||||
AetherGrapeEngine grapeEngine = createGrapeEngine();
|
||||
GrapeEngine grapeEngine = createGrapeEngine();
|
||||
DefaultRepositorySystemSession session = (DefaultRepositorySystemSession) ReflectionTestUtils
|
||||
.getField(grapeEngine, "session");
|
||||
|
||||
|
@ -139,7 +140,7 @@ class AetherGrapeEngineTests {
|
|||
@Test
|
||||
void resolutionWithCustomResolver() {
|
||||
Map<String, Object> args = new HashMap<>();
|
||||
AetherGrapeEngine grapeEngine = createGrapeEngine();
|
||||
GrapeEngine grapeEngine = createGrapeEngine();
|
||||
grapeEngine.addResolver(createResolver("spring-releases", "https://repo.spring.io/release"));
|
||||
Map<String, Object> dependency = createDependency("io.spring.docresources", "spring-doc-resources",
|
||||
"0.1.1.RELEASE");
|
||||
|
@ -153,7 +154,7 @@ class AetherGrapeEngineTests {
|
|||
Map<String, Object> dependency = createDependency("org.grails", "grails-dependencies", "2.4.0");
|
||||
dependency.put("type", "foo");
|
||||
dependency.put("ext", "bar");
|
||||
AetherGrapeEngine grapeEngine = createGrapeEngine();
|
||||
GrapeEngine grapeEngine = createGrapeEngine();
|
||||
assertThatIllegalArgumentException().isThrownBy(() -> grapeEngine.grab(Collections.emptyMap(), dependency));
|
||||
}
|
||||
|
||||
|
@ -196,7 +197,7 @@ class AetherGrapeEngineTests {
|
|||
|
||||
@SuppressWarnings("unchecked")
|
||||
private List<RemoteRepository> getRepositories() {
|
||||
AetherGrapeEngine grapeEngine = createGrapeEngine();
|
||||
GrapeEngine grapeEngine = createGrapeEngine();
|
||||
return (List<RemoteRepository>) ReflectionTestUtils.getField(grapeEngine, "repositories");
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
[[cli.maven-setting]]
|
||||
== Configuring the CLI with settings.xml
|
||||
The Spring Boot CLI uses Aether, Maven's dependency resolution engine, to resolve dependencies.
|
||||
The CLI makes use of the Maven configuration found in `~/.m2/settings.xml` to configure Aether.
|
||||
The Spring Boot CLI uses Maven Resolver, Maven's dependency resolution engine, to resolve dependencies.
|
||||
The CLI makes use of the Maven configuration found in `~/.m2/settings.xml` to configure Maven Resolver.
|
||||
The following configuration settings are honored by the CLI:
|
||||
|
||||
* Offline
|
||||
|
|
Loading…
Reference in New Issue