Switch from Aether to Maven Resolver

Replace Aether dependencies with Maven Resolver following the Eclipse
EOL announcement for Aether.

Closes gh-7627
This commit is contained in:
Phillip Webb 2018-09-11 16:49:06 -07:00
parent 1f9754fc81
commit 894e0e11d4
4 changed files with 153 additions and 127 deletions

View File

@ -1,5 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
@ -39,6 +40,20 @@
<groupId>org.codehaus.groovy</groupId> <groupId>org.codehaus.groovy</groupId>
<artifactId>groovy</artifactId> <artifactId>groovy</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.sonatype.plexus</groupId>
<artifactId>plexus-sec-dispatcher</artifactId>
</dependency>
<dependency>
<groupId>org.sonatype.sisu</groupId>
<artifactId>sisu-inject-plexus</artifactId>
<exclusions>
<exclusion>
<groupId>org.sonatype.sisu</groupId>
<artifactId>sisu-inject-bean</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency> <dependency>
<groupId>org.springframework</groupId> <groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId> <artifactId>spring-core</artifactId>
@ -47,53 +62,43 @@
<groupId>org.springframework.security</groupId> <groupId>org.springframework.security</groupId>
<artifactId>spring-security-crypto</artifactId> <artifactId>spring-security-crypto</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.apache.maven</groupId> <groupId>org.apache.maven</groupId>
<artifactId>maven-aether-provider</artifactId> <artifactId>maven-model</artifactId>
<exclusions>
<exclusion>
<artifactId>org.eclipse.sisu.plexus</artifactId>
<groupId>org.eclipse.sisu</groupId>
</exclusion>
</exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.maven</groupId> <groupId>org.apache.maven</groupId>
<artifactId>maven-settings-builder</artifactId> <artifactId>maven-settings-builder</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.codehaus.plexus</groupId> <groupId>org.apache.maven</groupId>
<artifactId>plexus-component-api</artifactId> <artifactId>maven-resolver-provider</artifactId>
<exclusions> <exclusions>
<exclusion> <exclusion>
<groupId>*</groupId> <groupId>com.google.guava</groupId>
<artifactId>*</artifactId> <artifactId>guava</artifactId>
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.eclipse.aether</groupId> <groupId>org.apache.maven.resolver</groupId>
<artifactId>aether-api</artifactId> <artifactId>maven-resolver-connector-basic</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.eclipse.aether</groupId> <groupId>org.apache.maven.resolver</groupId>
<artifactId>aether-connector-basic</artifactId> <artifactId>maven-resolver-impl</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.eclipse.aether</groupId> <groupId>org.apache.maven.resolver</groupId>
<artifactId>aether-impl</artifactId> <artifactId>maven-resolver-transport-file</artifactId>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.eclipse.aether</groupId> <groupId>org.apache.maven.resolver</groupId>
<artifactId>aether-spi</artifactId> <artifactId>maven-resolver-transport-http</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-transport-file</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-transport-http</artifactId>
<exclusions> <exclusions>
<exclusion> <exclusion>
<artifactId>jcl-over-slf4j</artifactId> <artifactId>jcl-over-slf4j</artifactId>
@ -101,10 +106,6 @@
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-util</artifactId>
</dependency>
<!-- Provided --> <!-- Provided -->
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
@ -308,17 +309,23 @@
<inherited>false</inherited> <inherited>false</inherited>
<configuration> <configuration>
<target> <target>
<taskdef resource="net/sf/antcontrib/antcontrib.properties" /> <taskdef
<taskdef name="stringutil" classname="ise.antelope.tasks.StringUtilTask" /> resource="net/sf/antcontrib/antcontrib.properties" />
<taskdef name="stringutil"
classname="ise.antelope.tasks.StringUtilTask" />
<var name="version-type" value="${project.version}" /> <var name="version-type" value="${project.version}" />
<propertyregex property="version-type" override="true" <propertyregex property="version-type"
input="${version-type}" regexp=".*\.(.*)" replace="\1" /> override="true" input="${version-type}" regexp=".*\.(.*)"
<propertyregex property="version-type" override="true" replace="\1" />
input="${version-type}" regexp="(M)\d+" replace="MILESTONE" /> <propertyregex property="version-type"
<propertyregex property="version-type" override="true" override="true" input="${version-type}" regexp="(M)\d+"
input="${version-type}" regexp="(RC)\d+" replace="MILESTONE" /> replace="MILESTONE" />
<propertyregex property="version-type" override="true" <propertyregex property="version-type"
input="${version-type}" regexp="BUILD-(.*)" replace="SNAPSHOT" /> override="true" input="${version-type}" regexp="(RC)\d+"
replace="MILESTONE" />
<propertyregex property="version-type"
override="true" input="${version-type}" regexp="BUILD-(.*)"
replace="SNAPSHOT" />
<stringutil string="${version-type}" property="repo"> <stringutil string="${version-type}" property="repo">
<lowercase /> <lowercase />
</stringutil> </stringutil>
@ -328,12 +335,14 @@
<echo <echo
message="Customizing homebrew for ${project.version} with checksum ${checksum} in ${repo} repo" /> message="Customizing homebrew for ${project.version} with checksum ${checksum} in ${repo} repo" />
<copy file="${basedir}/src/main/homebrew/springboot.rb" <copy file="${basedir}/src/main/homebrew/springboot.rb"
tofile="${project.build.directory}/homebrew/springboot.rb" overwrite="true"> tofile="${project.build.directory}/homebrew/springboot.rb"
overwrite="true">
<filterchain> <filterchain>
<expandproperties /> <expandproperties />
</filterchain> </filterchain>
</copy> </copy>
<attachartifact file="${project.build.directory}/homebrew/springboot.rb" <attachartifact
file="${project.build.directory}/homebrew/springboot.rb"
classifier="homebrew" type="rb" /> classifier="homebrew" type="rb" />
</target> </target>
</configuration> </configuration>
@ -347,20 +356,27 @@
<inherited>false</inherited> <inherited>false</inherited>
<configuration> <configuration>
<target> <target>
<taskdef resource="net/sf/antcontrib/antcontrib.properties" /> <taskdef
<taskdef name="stringutil" classname="ise.antelope.tasks.StringUtilTask" /> resource="net/sf/antcontrib/antcontrib.properties" />
<taskdef name="stringutil"
classname="ise.antelope.tasks.StringUtilTask" />
<var name="scoop-version" value="${project.version}" /> <var name="scoop-version" value="${project.version}" />
<propertyregex property="scoop-version" override="true" <propertyregex property="scoop-version"
input="${scoop-version}" regexp="(.*)\..*" replace="\1" /> override="true" input="${scoop-version}" regexp="(.*)\..*"
replace="\1" />
<var name="version-type" value="${project.version}" /> <var name="version-type" value="${project.version}" />
<propertyregex property="version-type" override="true" <propertyregex property="version-type"
input="${version-type}" regexp=".*\.(.*)" replace="\1" /> override="true" input="${version-type}" regexp=".*\.(.*)"
<propertyregex property="version-type" override="true" replace="\1" />
input="${version-type}" regexp="(M)\d+" replace="MILESTONE" /> <propertyregex property="version-type"
<propertyregex property="version-type" override="true" override="true" input="${version-type}" regexp="(M)\d+"
input="${version-type}" regexp="(RC)\d+" replace="MILESTONE" /> replace="MILESTONE" />
<propertyregex property="version-type" override="true" <propertyregex property="version-type"
input="${version-type}" regexp="BUILD-(.*)" replace="SNAPSHOT" /> override="true" input="${version-type}" regexp="(RC)\d+"
replace="MILESTONE" />
<propertyregex property="version-type"
override="true" input="${version-type}" regexp="BUILD-(.*)"
replace="SNAPSHOT" />
<stringutil string="${version-type}" property="repo"> <stringutil string="${version-type}" property="repo">
<lowercase /> <lowercase />
</stringutil> </stringutil>
@ -370,7 +386,8 @@
<echo <echo
message="Customizing scoop for ${project.version} with hash ${hash} in ${repo} repo" /> message="Customizing scoop for ${project.version} with hash ${hash} in ${repo} repo" />
<copy file="${basedir}/src/main/scoop/springboot.json" <copy file="${basedir}/src/main/scoop/springboot.json"
tofile="${project.build.directory}/scoop/springboot.json" overwrite="true"> tofile="${project.build.directory}/scoop/springboot.json"
overwrite="true">
<filterchain> <filterchain>
<expandproperties> <expandproperties>
<propertyset> <propertyset>
@ -382,8 +399,9 @@
</expandproperties> </expandproperties>
</filterchain> </filterchain>
</copy> </copy>
<attachartifact file="${project.build.directory}/scoop/springboot.json" <attachartifact
classifier="scoop" type="json" /> file="${project.build.directory}/scoop/springboot.json"
classifier="scoop" type="json" />
</target> </target>
</configuration> </configuration>
</execution> </execution>

View File

@ -28,7 +28,9 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import groovy.grape.Grape; import groovy.grape.Grape;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.Model; import org.apache.maven.model.Model;
import org.apache.maven.model.Parent;
import org.apache.maven.model.Repository; import org.apache.maven.model.Repository;
import org.apache.maven.model.building.DefaultModelBuilder; import org.apache.maven.model.building.DefaultModelBuilder;
import org.apache.maven.model.building.DefaultModelBuilderFactory; import org.apache.maven.model.building.DefaultModelBuilderFactory;
@ -61,6 +63,7 @@ import org.springframework.core.annotation.Order;
* @since 1.3.0 * @since 1.3.0
*/ */
@Order(DependencyManagementBomTransformation.ORDER) @Order(DependencyManagementBomTransformation.ORDER)
@SuppressWarnings("deprecation")
public class DependencyManagementBomTransformation public class DependencyManagementBomTransformation
extends AnnotatedNodeASTTransformation { extends AnnotatedNodeASTTransformation {
@ -210,6 +213,19 @@ public class DependencyManagementBomTransformation
private static class GrapeModelResolver implements ModelResolver { private static class GrapeModelResolver implements ModelResolver {
@Override
public ModelSource resolveModel(Parent parent) throws UnresolvableModelException {
return resolveModel(parent.getGroupId(), parent.getArtifactId(),
parent.getVersion());
}
@Override
public ModelSource resolveModel(Dependency dependency)
throws UnresolvableModelException {
return resolveModel(dependency.getGroupId(), dependency.getArtifactId(),
dependency.getVersion());
}
@Override @Override
public ModelSource resolveModel(String groupId, String artifactId, String version) public ModelSource resolveModel(String groupId, String artifactId, String version)
throws UnresolvableModelException { throws UnresolvableModelException {
@ -233,6 +249,11 @@ public class DependencyManagementBomTransformation
throws InvalidRepositoryException { throws InvalidRepositoryException {
} }
@Override
public void addRepository(Repository repository, boolean replace)
throws InvalidRepositoryException {
}
@Override @Override
public ModelResolver newCopy() { public ModelResolver newCopy() {
return this; return this;

View File

@ -23,8 +23,8 @@
<java.version>1.8</java.version> <java.version>1.8</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<aether.version>1.0.2.v20150114</aether.version> <maven.version>3.5.4</maven.version>
<maven.version>3.1.1</maven.version> <maven-resolver.version>1.1.1</maven-resolver.version>
<spock.version>1.0-groovy-2.4</spock.version> <spock.version>1.0-groovy-2.4</spock.version>
</properties> </properties>
<scm> <scm>
@ -78,6 +78,16 @@
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency>
<groupId>org.sonatype.plexus</groupId>
<artifactId>plexus-sec-dispatcher</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>org.sonatype.sisu</groupId>
<artifactId>sisu-inject-plexus</artifactId>
<version>1.4.2</version>
</dependency>
<dependency> <dependency>
<groupId>com.squareup.okhttp</groupId> <groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId> <artifactId>okhttp</artifactId>
@ -128,11 +138,6 @@
<artifactId>ivy</artifactId> <artifactId>ivy</artifactId>
<version>2.3.0</version> <version>2.3.0</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-aether-provider</artifactId>
<version>3.2.1</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.maven</groupId> <groupId>org.apache.maven</groupId>
<artifactId>maven-archiver</artifactId> <artifactId>maven-archiver</artifactId>
@ -168,6 +173,36 @@
<artifactId>maven-settings-builder</artifactId> <artifactId>maven-settings-builder</artifactId>
<version>${maven.version}</version> <version>${maven.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model-builder</artifactId>
<version>${maven.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-resolver-provider</artifactId>
<version>${maven.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-connector-basic</artifactId>
<version>${maven-resolver.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-transport-file</artifactId>
<version>${maven-resolver.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-transport-http</artifactId>
<version>${maven-resolver.version}</version>
</dependency>
<dependency>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-impl</artifactId>
<version>${maven-resolver.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.maven.shared</groupId> <groupId>org.apache.maven.shared</groupId>
<artifactId>maven-common-artifact-filters</artifactId> <artifactId>maven-common-artifact-filters</artifactId>
@ -188,51 +223,11 @@
<artifactId>plexus-archiver</artifactId> <artifactId>plexus-archiver</artifactId>
<version>3.6.0</version> <version>3.6.0</version>
</dependency> </dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-component-api</artifactId>
<version>1.0-alpha-33</version>
</dependency>
<dependency> <dependency>
<groupId>org.codehaus.plexus</groupId> <groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-utils</artifactId> <artifactId>plexus-utils</artifactId>
<version>3.1.0</version> <version>3.1.0</version>
</dependency> </dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-api</artifactId>
<version>${aether.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-connector-basic</artifactId>
<version>${aether.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-impl</artifactId>
<version>${aether.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-spi</artifactId>
<version>${aether.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-transport-file</artifactId>
<version>${aether.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-transport-http</artifactId>
<version>${aether.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-util</artifactId>
<version>${aether.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.sonatype.plexus</groupId> <groupId>org.sonatype.plexus</groupId>
<artifactId>plexus-build-api</artifactId> <artifactId>plexus-build-api</artifactId>

View File

@ -26,35 +26,27 @@
</build> </build>
<dependencies> <dependencies>
<!-- Compile --> <!-- Compile -->
<dependency>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-connector-basic</artifactId>
</dependency>
<dependency>
<groupId>org.apache.maven.resolver</groupId>
<artifactId>maven-resolver-impl</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.apache.maven</groupId> <groupId>org.apache.maven</groupId>
<artifactId>maven-aether-provider</artifactId> <artifactId>maven-resolver-provider</artifactId>
<exclusions> <exclusions>
<exclusion> <exclusion>
<artifactId>org.eclipse.sisu.plexus</artifactId> <groupId>com.google.guava</groupId>
<groupId>org.eclipse.sisu</groupId> <artifactId>guava</artifactId>
</exclusion> </exclusion>
</exclusions> </exclusions>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.eclipse.aether</groupId> <groupId>org.apache.maven.resolver</groupId>
<artifactId>aether-api</artifactId> <artifactId>maven-resolver-transport-http</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-connector-basic</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-impl</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-spi</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-transport-http</artifactId>
<exclusions> <exclusions>
<exclusion> <exclusion>
<artifactId>jcl-over-slf4j</artifactId> <artifactId>jcl-over-slf4j</artifactId>