This is an automated email from the ASF dual-hosted git repository.
slawekjaranowski 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 37126112 Fix artifact relocation support
37126112 is described below
commit 371261124f9cff27cf0439fe3abaec4e322fae7e
Author: Slawomir Jaranowski <[email protected]>
AuthorDate: Sat May 23 22:05:00 2026 +0200
Fix artifact relocation support
- Update ITs for `copy`, `unpack`, and relocation use cases.
- Simplify and align artifact verification in integration tests.
---
src/it/mrm/repository/ResourceArtifact-1.0.pom | 2 +-
...1.0.pom => ResourceArtifact-relocation-1.0.pom} | 12 ++++++--
src/it/mrm/repository/get-artifact-1.0.jar | Bin 345 -> 0 bytes
.../repository/get-artifact-maven-plugin-1.0.jar | Bin 345 -> 0 bytes
.../mrm/repository/get-artifact-transitive-1.0.jar | Bin 345 -> 0 bytes
src/it/projects/copy-cli/test.properties | 2 +-
.../{copy/verify.bsh => copy-cli/verify.groovy} | 19 +-----------
.../invoker.properties} | 2 +-
src/it/projects/{copy => copy-relocation}/pom.xml | 8 ++---
.../verify.bsh => copy-relocation/verify.groovy} | 19 +-----------
src/it/projects/copy/pom.xml | 6 ++--
.../{copy-cli/verify.bsh => copy/verify.groovy} | 19 +-----------
.../invoker.properties} | 2 +-
.../projects/{copy => unpack-relocation}/pom.xml | 24 +++++++++------
.../verify.bsh => unpack-relocation/verify.groovy} | 19 ++----------
.../maven/plugins/dependency/ListClassesMojo.java | 6 +++-
.../maven/plugins/dependency/PropertiesMojo.java | 3 +-
.../AbstractFromConfigurationMojo.java | 18 ++++++-----
.../dependency/fromConfiguration/CopyMojo.java | 6 ++--
.../dependency/fromConfiguration/UnpackMojo.java | 6 ++--
.../AbstractDependencyFilterMojo.java | 5 +--
.../fromDependencies/CopyDependenciesMojo.java | 5 +--
.../dependency/resolvers/GoOfflineMojo.java | 6 +++-
.../dependency/resolvers/ResolvePluginsMojo.java | 6 +++-
.../plugins/dependency/utils/ResolverUtil.java | 34 ++++++++++++++++++---
25 files changed, 111 insertions(+), 118 deletions(-)
diff --git a/src/it/mrm/repository/ResourceArtifact-1.0.pom
b/src/it/mrm/repository/ResourceArtifact-1.0.pom
index 322146d2..e44e1cd0 100644
--- a/src/it/mrm/repository/ResourceArtifact-1.0.pom
+++ b/src/it/mrm/repository/ResourceArtifact-1.0.pom
@@ -27,4 +27,4 @@
<version>1.0</version>
<packaging>jar</packaging>
-</project>
\ No newline at end of file
+</project>
diff --git a/src/it/mrm/repository/ResourceArtifact-1.0.pom
b/src/it/mrm/repository/ResourceArtifact-relocation-1.0.pom
similarity index 83%
copy from src/it/mrm/repository/ResourceArtifact-1.0.pom
copy to src/it/mrm/repository/ResourceArtifact-relocation-1.0.pom
index 322146d2..d992d407 100644
--- a/src/it/mrm/repository/ResourceArtifact-1.0.pom
+++ b/src/it/mrm/repository/ResourceArtifact-relocation-1.0.pom
@@ -23,8 +23,14 @@
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>
<groupId>org.apache.maven.its.dependency</groupId>
- <artifactId>ResourceArtifact</artifactId>
+ <artifactId>ResourceArtifact-relocation</artifactId>
<version>1.0</version>
- <packaging>jar</packaging>
+ <packaging>pom</packaging>
-</project>
\ No newline at end of file
+ <distributionManagement>
+ <relocation>
+ <artifactId>ResourceArtifact</artifactId>
+ </relocation>
+ </distributionManagement>
+
+</project>
diff --git a/src/it/mrm/repository/get-artifact-1.0.jar
b/src/it/mrm/repository/get-artifact-1.0.jar
deleted file mode 100644
index 226277c3..00000000
Binary files a/src/it/mrm/repository/get-artifact-1.0.jar and /dev/null differ
diff --git a/src/it/mrm/repository/get-artifact-maven-plugin-1.0.jar
b/src/it/mrm/repository/get-artifact-maven-plugin-1.0.jar
deleted file mode 100644
index 226277c3..00000000
Binary files a/src/it/mrm/repository/get-artifact-maven-plugin-1.0.jar and
/dev/null differ
diff --git a/src/it/mrm/repository/get-artifact-transitive-1.0.jar
b/src/it/mrm/repository/get-artifact-transitive-1.0.jar
deleted file mode 100644
index 226277c3..00000000
Binary files a/src/it/mrm/repository/get-artifact-transitive-1.0.jar and
/dev/null differ
diff --git a/src/it/projects/copy-cli/test.properties
b/src/it/projects/copy-cli/test.properties
index 356610c4..8af858c2 100644
--- a/src/it/projects/copy-cli/test.properties
+++ b/src/it/projects/copy-cli/test.properties
@@ -15,4 +15,4 @@
# specific language governing permissions and limitations
# under the License.
-artifact=org.apache.maven:maven-model:2.0.6
+artifact=org.apache.maven.its.dependency:a1:1.0.0
diff --git a/src/it/projects/copy/verify.bsh
b/src/it/projects/copy-cli/verify.groovy
similarity index 70%
rename from src/it/projects/copy/verify.bsh
rename to src/it/projects/copy-cli/verify.groovy
index da93772d..37dc0192 100644
--- a/src/it/projects/copy/verify.bsh
+++ b/src/it/projects/copy-cli/verify.groovy
@@ -17,21 +17,4 @@
* under the License.
*/
-import java.io.*;
-
-File libDir = new File( basedir, "target/dependency" );
-
-String[] expectedFiles = {
- "maven-model-2.0.6.jar",
-};
-
-for ( String expectedFile : expectedFiles )
-{
- File file = new File( libDir, expectedFile );
- if ( !file.isFile() )
- {
- throw new Exception( "Missing file " + file );
- }
-}
-
-return true;
+assert new File( basedir, 'target/dependency/a1-1.0.0.jar' ).isFile();
diff --git a/src/it/projects/copy-cli/test.properties
b/src/it/projects/copy-relocation/invoker.properties
similarity index 94%
copy from src/it/projects/copy-cli/test.properties
copy to src/it/projects/copy-relocation/invoker.properties
index 356610c4..f50e476f 100644
--- a/src/it/projects/copy-cli/test.properties
+++ b/src/it/projects/copy-relocation/invoker.properties
@@ -15,4 +15,4 @@
# specific language governing permissions and limitations
# under the License.
-artifact=org.apache.maven:maven-model:2.0.6
+invoker.goals = clean process-sources
diff --git a/src/it/projects/copy/pom.xml
b/src/it/projects/copy-relocation/pom.xml
similarity index 89%
copy from src/it/projects/copy/pom.xml
copy to src/it/projects/copy-relocation/pom.xml
index 5e2a00c1..197d49f2 100644
--- a/src/it/projects/copy/pom.xml
+++ b/src/it/projects/copy-relocation/pom.xml
@@ -29,7 +29,7 @@
<name>Test</name>
<description>
- Test dependency:copy
+ Test dependency:copy with relocation
</description>
<properties>
@@ -50,9 +50,9 @@
<configuration>
<artifactItems>
<artifactItem>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-model</artifactId>
- <version>2.0.6</version>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>ResourceArtifact-relocation</artifactId>
+ <version>1.0</version>
</artifactItem>
</artifactItems>
</configuration>
diff --git a/src/it/projects/copy-cli/verify.bsh
b/src/it/projects/copy-relocation/verify.groovy
similarity index 70%
copy from src/it/projects/copy-cli/verify.bsh
copy to src/it/projects/copy-relocation/verify.groovy
index da93772d..672e5f1e 100644
--- a/src/it/projects/copy-cli/verify.bsh
+++ b/src/it/projects/copy-relocation/verify.groovy
@@ -17,21 +17,4 @@
* under the License.
*/
-import java.io.*;
-
-File libDir = new File( basedir, "target/dependency" );
-
-String[] expectedFiles = {
- "maven-model-2.0.6.jar",
-};
-
-for ( String expectedFile : expectedFiles )
-{
- File file = new File( libDir, expectedFile );
- if ( !file.isFile() )
- {
- throw new Exception( "Missing file " + file );
- }
-}
-
-return true;
+assert new File( basedir, 'target/dependency/ResourceArtifact-1.0.jar'
).isFile();
diff --git a/src/it/projects/copy/pom.xml b/src/it/projects/copy/pom.xml
index 5e2a00c1..a2a5d695 100644
--- a/src/it/projects/copy/pom.xml
+++ b/src/it/projects/copy/pom.xml
@@ -50,9 +50,9 @@
<configuration>
<artifactItems>
<artifactItem>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-model</artifactId>
- <version>2.0.6</version>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>a1</artifactId>
+ <version>1.0.0</version>
</artifactItem>
</artifactItems>
</configuration>
diff --git a/src/it/projects/copy-cli/verify.bsh
b/src/it/projects/copy/verify.groovy
similarity index 70%
copy from src/it/projects/copy-cli/verify.bsh
copy to src/it/projects/copy/verify.groovy
index da93772d..37dc0192 100644
--- a/src/it/projects/copy-cli/verify.bsh
+++ b/src/it/projects/copy/verify.groovy
@@ -17,21 +17,4 @@
* under the License.
*/
-import java.io.*;
-
-File libDir = new File( basedir, "target/dependency" );
-
-String[] expectedFiles = {
- "maven-model-2.0.6.jar",
-};
-
-for ( String expectedFile : expectedFiles )
-{
- File file = new File( libDir, expectedFile );
- if ( !file.isFile() )
- {
- throw new Exception( "Missing file " + file );
- }
-}
-
-return true;
+assert new File( basedir, 'target/dependency/a1-1.0.0.jar' ).isFile();
diff --git a/src/it/projects/copy-cli/test.properties
b/src/it/projects/unpack-relocation/invoker.properties
similarity index 94%
copy from src/it/projects/copy-cli/test.properties
copy to src/it/projects/unpack-relocation/invoker.properties
index 356610c4..f50e476f 100644
--- a/src/it/projects/copy-cli/test.properties
+++ b/src/it/projects/unpack-relocation/invoker.properties
@@ -15,4 +15,4 @@
# specific language governing permissions and limitations
# under the License.
-artifact=org.apache.maven:maven-model:2.0.6
+invoker.goals = clean process-sources
diff --git a/src/it/projects/copy/pom.xml
b/src/it/projects/unpack-relocation/pom.xml
similarity index 83%
copy from src/it/projects/copy/pom.xml
copy to src/it/projects/unpack-relocation/pom.xml
index 5e2a00c1..9436753b 100644
--- a/src/it/projects/copy/pom.xml
+++ b/src/it/projects/unpack-relocation/pom.xml
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
+
<!--
~ Licensed to the Apache Software Foundation (ASF) under one
~ or more contributor license agreements. See the NOTICE file
@@ -17,42 +18,45 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
+
<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">
- <modelVersion>4.0.0</modelVersion>
+ <modelVersion>4.0.0</modelVersion>
+
<groupId>org.apache.maven.its.dependency</groupId>
<artifactId>test</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Test</name>
<description>
- Test dependency:copy
+ Test dependency:unpack with relocation
</description>
-
+
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
-
+
<build>
+
<plugins>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>@project.version@</version>
<executions>
<execution>
- <id>test</id>
+ <id>unpack</id>
<goals>
- <goal>copy</goal>
+ <goal>unpack</goal>
</goals>
<configuration>
+
<outputDirectory>${project.build.directory}/ResourceArtifact</outputDirectory>
<artifactItems>
<artifactItem>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-model</artifactId>
- <version>2.0.6</version>
+ <groupId>org.apache.maven.its.dependency</groupId>
+ <artifactId>ResourceArtifact-relocation</artifactId>
+ <version>1.0</version>
</artifactItem>
</artifactItems>
</configuration>
diff --git a/src/it/projects/copy-cli/verify.bsh
b/src/it/projects/unpack-relocation/verify.groovy
similarity index 70%
rename from src/it/projects/copy-cli/verify.bsh
rename to src/it/projects/unpack-relocation/verify.groovy
index da93772d..7c14f5f6 100644
--- a/src/it/projects/copy-cli/verify.bsh
+++ b/src/it/projects/unpack-relocation/verify.groovy
@@ -17,21 +17,8 @@
* under the License.
*/
-import java.io.*;
-File libDir = new File( basedir, "target/dependency" );
+assert new File(basedir,
'target/ResourceArtifact/META-INF/MANIFEST.MF').isFile()
+assert new File(basedir, 'target/ResourceArtifact/resource1.txt').isFile()
+assert new File(basedir, 'target/ResourceArtifact/resource2.txt').isFile()
-String[] expectedFiles = {
- "maven-model-2.0.6.jar",
-};
-
-for ( String expectedFile : expectedFiles )
-{
- File file = new File( libDir, expectedFile );
- if ( !file.isFile() )
- {
- throw new Exception( "Missing file " + file );
- }
-}
-
-return true;
diff --git
a/src/main/java/org/apache/maven/plugins/dependency/ListClassesMojo.java
b/src/main/java/org/apache/maven/plugins/dependency/ListClassesMojo.java
index 15866fd8..59250599 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/ListClassesMojo.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/ListClassesMojo.java
@@ -35,6 +35,7 @@ import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.plugins.dependency.utils.ParamArtifact;
import org.apache.maven.plugins.dependency.utils.ResolverUtil;
import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.resolution.ArtifactDescriptorException;
import org.eclipse.aether.resolution.ArtifactResolutionException;
import org.eclipse.aether.resolution.DependencyResolutionException;
@@ -170,7 +171,10 @@ public class ListClassesMojo extends AbstractMojo {
resolverUtil.resolveArtifact(artifact,
resolverUtil.remoteRepositories(remoteRepositories));
printClassesFromArtifactResult(a.getFile());
}
- } catch (IOException | ArtifactResolutionException |
DependencyResolutionException e) {
+ } catch (IOException
+ | ArtifactResolutionException
+ | DependencyResolutionException
+ | ArtifactDescriptorException e) {
throw new MojoExecutionException("Couldn't download artifact: " +
e.getMessage(), e);
}
}
diff --git
a/src/main/java/org/apache/maven/plugins/dependency/PropertiesMojo.java
b/src/main/java/org/apache/maven/plugins/dependency/PropertiesMojo.java
index 0d488055..363446d5 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/PropertiesMojo.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/PropertiesMojo.java
@@ -33,6 +33,7 @@ import org.apache.maven.plugins.annotations.ResolutionScope;
import org.apache.maven.plugins.dependency.utils.ParamArtifact;
import org.apache.maven.plugins.dependency.utils.ResolverUtil;
import org.apache.maven.project.MavenProject;
+import org.eclipse.aether.resolution.ArtifactDescriptorException;
import org.eclipse.aether.resolution.ArtifactResolutionException;
/**
@@ -134,7 +135,7 @@ public class PropertiesMojo extends AbstractMojo {
.setProperty(
toConflictId(artifact),
artifact.getFile().getAbsolutePath());
}
- } catch (ArtifactResolutionException e) {
+ } catch (ArtifactResolutionException | ArtifactDescriptorException
e) {
throw new MojoExecutionException("Couldn't download artifact:
" + e.getMessage(), e);
}
}
diff --git
a/src/main/java/org/apache/maven/plugins/dependency/fromConfiguration/AbstractFromConfigurationMojo.java
b/src/main/java/org/apache/maven/plugins/dependency/fromConfiguration/AbstractFromConfigurationMojo.java
index 88914298..1c5a5513 100644
---
a/src/main/java/org/apache/maven/plugins/dependency/fromConfiguration/AbstractFromConfigurationMojo.java
+++
b/src/main/java/org/apache/maven/plugins/dependency/fromConfiguration/AbstractFromConfigurationMojo.java
@@ -35,6 +35,7 @@ import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.plugins.dependency.AbstractDependencyMojo;
import org.apache.maven.plugins.dependency.utils.DependencyUtil;
+import org.apache.maven.plugins.dependency.utils.ResolverUtil;
import org.apache.maven.plugins.dependency.utils.filters.ArtifactItemFilter;
import org.apache.maven.project.MavenProject;
import
org.apache.maven.shared.artifact.filter.collection.ArtifactFilterException;
@@ -45,9 +46,8 @@ import org.eclipse.aether.RepositorySystemSession;
import org.eclipse.aether.artifact.DefaultArtifact;
import org.eclipse.aether.repository.LocalRepository;
import org.eclipse.aether.repository.LocalRepositoryManager;
-import org.eclipse.aether.resolution.ArtifactRequest;
+import org.eclipse.aether.resolution.ArtifactDescriptorException;
import org.eclipse.aether.resolution.ArtifactResolutionException;
-import org.eclipse.aether.resolution.ArtifactResult;
import org.sonatype.plexus.build.incremental.BuildContext;
/**
@@ -122,15 +122,19 @@ public abstract class AbstractFromConfigurationMojo
extends AbstractDependencyMo
private final RepositorySystem repositorySystem;
+ private final ResolverUtil resolverUtil;
+
protected AbstractFromConfigurationMojo(
MavenSession session,
BuildContext buildContext,
MavenProject project,
ArtifactHandlerManager artifactHandlerManager,
- RepositorySystem repositorySystem) {
+ RepositorySystem repositorySystem,
+ ResolverUtil resolverUtil) {
super(session, buildContext, project);
this.artifactHandlerManager = artifactHandlerManager;
this.repositorySystem = repositorySystem;
+ this.resolverUtil = resolverUtil;
}
abstract ArtifactItemFilter getMarkedArtifactFilter(ArtifactItem item);
@@ -252,11 +256,11 @@ public abstract class AbstractFromConfigurationMojo
extends AbstractDependencyMo
RepositorySystemSession repositorySession =
createSystemSessionForLocalRepo();
- ArtifactRequest request = new ArtifactRequest(artifact,
getProject().getRemoteProjectRepositories(), null);
- ArtifactResult artifactResult =
repositorySystem.resolveArtifact(repositorySession, request);
- return RepositoryUtils.toArtifact(artifactResult.getArtifact());
+ org.eclipse.aether.artifact.Artifact resolvedArtifact =
resolverUtil.resolveArtifact(
+ artifact, getProject().getRemoteProjectRepositories(),
repositorySession);
+ return RepositoryUtils.toArtifact(resolvedArtifact);
- } catch (ArtifactResolutionException e) {
+ } catch (ArtifactResolutionException | ArtifactDescriptorException e) {
throw new MojoExecutionException("Unable to find/resolve
artifact.", e);
}
}
diff --git
a/src/main/java/org/apache/maven/plugins/dependency/fromConfiguration/CopyMojo.java
b/src/main/java/org/apache/maven/plugins/dependency/fromConfiguration/CopyMojo.java
index dab686a5..644c6121 100644
---
a/src/main/java/org/apache/maven/plugins/dependency/fromConfiguration/CopyMojo.java
+++
b/src/main/java/org/apache/maven/plugins/dependency/fromConfiguration/CopyMojo.java
@@ -33,6 +33,7 @@ import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.plugins.dependency.utils.CopyUtil;
+import org.apache.maven.plugins.dependency.utils.ResolverUtil;
import org.apache.maven.plugins.dependency.utils.filters.ArtifactItemFilter;
import org.apache.maven.plugins.dependency.utils.filters.DestFileFilter;
import org.apache.maven.project.MavenProject;
@@ -93,8 +94,9 @@ public class CopyMojo extends AbstractFromConfigurationMojo {
MavenProject project,
ArtifactHandlerManager artifactHandlerManager,
CopyUtil copyUtil,
- RepositorySystem repositorySystem) {
- super(session, buildContext, project, artifactHandlerManager,
repositorySystem);
+ RepositorySystem repositorySystem,
+ ResolverUtil resolverUtil) {
+ super(session, buildContext, project, artifactHandlerManager,
repositorySystem, resolverUtil);
this.copyUtil = copyUtil;
}
diff --git
a/src/main/java/org/apache/maven/plugins/dependency/fromConfiguration/UnpackMojo.java
b/src/main/java/org/apache/maven/plugins/dependency/fromConfiguration/UnpackMojo.java
index e4854371..005299cd 100644
---
a/src/main/java/org/apache/maven/plugins/dependency/fromConfiguration/UnpackMojo.java
+++
b/src/main/java/org/apache/maven/plugins/dependency/fromConfiguration/UnpackMojo.java
@@ -30,6 +30,7 @@ import org.apache.maven.plugin.MojoFailureException;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.dependency.utils.ResolverUtil;
import org.apache.maven.plugins.dependency.utils.UnpackUtil;
import org.apache.maven.plugins.dependency.utils.filters.ArtifactItemFilter;
import org.apache.maven.plugins.dependency.utils.filters.MarkerFileFilter;
@@ -111,8 +112,9 @@ public class UnpackMojo extends
AbstractFromConfigurationMojo {
MavenProject project,
ArtifactHandlerManager artifactHandlerManager,
UnpackUtil unpackUtil,
- RepositorySystem repositorySystem) {
- super(session, buildContext, project, artifactHandlerManager,
repositorySystem);
+ RepositorySystem repositorySystem,
+ ResolverUtil resolverUtil) {
+ super(session, buildContext, project, artifactHandlerManager,
repositorySystem, resolverUtil);
this.unpackUtil = unpackUtil;
}
diff --git
a/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/AbstractDependencyFilterMojo.java
b/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/AbstractDependencyFilterMojo.java
index de605f1a..a0a23ca4 100644
---
a/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/AbstractDependencyFilterMojo.java
+++
b/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/AbstractDependencyFilterMojo.java
@@ -57,6 +57,7 @@ import
org.apache.maven.shared.artifact.filter.collection.ProjectTransitivityFil
import org.apache.maven.shared.artifact.filter.collection.ScopeFilter;
import org.apache.maven.shared.artifact.filter.collection.TypeFilter;
import org.eclipse.aether.repository.RemoteRepository;
+import org.eclipse.aether.resolution.ArtifactDescriptorException;
import org.eclipse.aether.resolution.ArtifactResolutionException;
import org.eclipse.aether.resolution.DependencyResolutionException;
import org.sonatype.plexus.build.incremental.BuildContext;
@@ -401,7 +402,7 @@ public abstract class AbstractDependencyFilterMojo extends
AbstractDependencyMoj
RepositoryUtils.toArtifact(project.getArtifact()),
project.getRemoteProjectRepositories());
artifacts.add(RepositoryUtils.toArtifact(resolvedArtifact));
- } catch (ArtifactResolutionException e) {
+ } catch (ArtifactResolutionException | ArtifactDescriptorException
e) {
throw new MojoExecutionException(e.getMessage(), e);
}
}
@@ -492,7 +493,7 @@ public abstract class AbstractDependencyFilterMojo extends
AbstractDependencyMoj
org.eclipse.aether.artifact.Artifact resolveArtifact =
resolverUtil.resolveArtifact(artifact,
getProject().getRemoteProjectRepositories());
resolvedArtifacts.add(RepositoryUtils.toArtifact(resolveArtifact));
- } catch (ArtifactResolutionException ex) {
+ } catch (ArtifactResolutionException | ArtifactDescriptorException
ex) {
// an error occurred during resolution, log it and continue
getLog().debug("error resolving: " + artifact, ex);
if (stopOnFailure) {
diff --git
a/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/CopyDependenciesMojo.java
b/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/CopyDependenciesMojo.java
index 9378fd52..43a38503 100644
---
a/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/CopyDependenciesMojo.java
+++
b/src/main/java/org/apache/maven/plugins/dependency/fromDependencies/CopyDependenciesMojo.java
@@ -48,6 +48,7 @@ import
org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter;
import org.apache.maven.shared.transfer.artifact.install.ArtifactInstaller;
import
org.apache.maven.shared.transfer.artifact.install.ArtifactInstallerException;
import org.apache.maven.shared.transfer.repository.RepositoryManager;
+import org.eclipse.aether.resolution.ArtifactDescriptorException;
import org.eclipse.aether.resolution.ArtifactResolutionException;
import org.eclipse.aether.util.artifact.SubArtifact;
import org.sonatype.plexus.build.incremental.BuildContext;
@@ -299,7 +300,7 @@ public class CopyDependenciesMojo extends
AbstractFromDependenciesMojo {
org.eclipse.aether.artifact.Artifact resolvedSignature =
getResolverUtil()
.resolveArtifact(aSignatureArtifact,
getProject().getRemoteProjectRepositories());
signatureFile = resolvedSignature.getFile();
- } catch (ArtifactResolutionException e) {
+ } catch (ArtifactResolutionException | ArtifactDescriptorException
e) {
getLog().warn("Failed to resolve signature file for artifact:
" + artifact, e);
}
}
@@ -380,7 +381,7 @@ public class CopyDependenciesMojo extends
AbstractFromDependenciesMojo {
org.eclipse.aether.artifact.Artifact resolvedPom =
getResolverUtil().resolveArtifact(aPomArtifact,
getProject().getRemoteProjectRepositories());
pomArtifact = RepositoryUtils.toArtifact(resolvedPom);
- } catch (ArtifactResolutionException e) {
+ } catch (ArtifactResolutionException | ArtifactDescriptorException e) {
getLog().info(e.getMessage());
}
return pomArtifact;
diff --git
a/src/main/java/org/apache/maven/plugins/dependency/resolvers/GoOfflineMojo.java
b/src/main/java/org/apache/maven/plugins/dependency/resolvers/GoOfflineMojo.java
index 110b294a..da0726d3 100644
---
a/src/main/java/org/apache/maven/plugins/dependency/resolvers/GoOfflineMojo.java
+++
b/src/main/java/org/apache/maven/plugins/dependency/resolvers/GoOfflineMojo.java
@@ -55,6 +55,7 @@ import
org.apache.maven.shared.artifact.filter.collection.GroupIdFilter;
import org.apache.maven.shared.artifact.filter.collection.ScopeFilter;
import org.apache.maven.shared.artifact.filter.collection.TypeFilter;
import org.eclipse.aether.artifact.ArtifactTypeRegistry;
+import org.eclipse.aether.resolution.ArtifactDescriptorException;
import org.eclipse.aether.resolution.ArtifactResolutionException;
import org.eclipse.aether.resolution.DependencyResolutionException;
import org.sonatype.plexus.build.incremental.BuildContext;
@@ -127,7 +128,10 @@ public class GoOfflineMojo extends
AbstractDependencyFilterMojo {
+
DependencyUtil.getFormattedFileName(RepositoryUtils.toArtifact(artifact),
false));
}
- } catch (ArtifactFilterException | ArtifactResolutionException |
DependencyResolutionException e) {
+ } catch (ArtifactFilterException
+ | ArtifactResolutionException
+ | DependencyResolutionException
+ | ArtifactDescriptorException e) {
throw new MojoExecutionException(e.getMessage(), e);
}
}
diff --git
a/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolvePluginsMojo.java
b/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolvePluginsMojo.java
index b4899821..74ad8158 100644
---
a/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolvePluginsMojo.java
+++
b/src/main/java/org/apache/maven/plugins/dependency/resolvers/ResolvePluginsMojo.java
@@ -41,6 +41,7 @@ import
org.apache.maven.plugins.dependency.utils.DependencyUtil;
import org.apache.maven.plugins.dependency.utils.ResolverUtil;
import org.apache.maven.project.MavenProject;
import org.eclipse.aether.artifact.Artifact;
+import org.eclipse.aether.resolution.ArtifactDescriptorException;
import org.eclipse.aether.resolution.ArtifactResolutionException;
import org.eclipse.aether.resolution.DependencyResolutionException;
import org.sonatype.plexus.build.incremental.BuildContext;
@@ -209,7 +210,10 @@ public class ResolvePluginsMojo extends
AbstractDependencyMojo {
DependencyUtil.write(output, outputFile, appendOutput,
encoding);
}
}
- } catch (IOException | ArtifactResolutionException |
DependencyResolutionException e) {
+ } catch (IOException
+ | ArtifactResolutionException
+ | DependencyResolutionException
+ | ArtifactDescriptorException e) {
throw new MojoExecutionException(e.getMessage(), e);
}
}
diff --git
a/src/main/java/org/apache/maven/plugins/dependency/utils/ResolverUtil.java
b/src/main/java/org/apache/maven/plugins/dependency/utils/ResolverUtil.java
index 8ff22350..60ca42c9 100644
--- a/src/main/java/org/apache/maven/plugins/dependency/utils/ResolverUtil.java
+++ b/src/main/java/org/apache/maven/plugins/dependency/utils/ResolverUtil.java
@@ -54,6 +54,9 @@ import
org.eclipse.aether.collection.DependencyCollectionException;
import org.eclipse.aether.graph.Dependency;
import org.eclipse.aether.repository.RemoteRepository;
import org.eclipse.aether.repository.RepositoryPolicy;
+import org.eclipse.aether.resolution.ArtifactDescriptorException;
+import org.eclipse.aether.resolution.ArtifactDescriptorRequest;
+import org.eclipse.aether.resolution.ArtifactDescriptorResult;
import org.eclipse.aether.resolution.ArtifactRequest;
import org.eclipse.aether.resolution.ArtifactResolutionException;
import org.eclipse.aether.resolution.ArtifactResult;
@@ -101,7 +104,7 @@ public class ResolverUtil {
}
/**
- * Resolve given artifact.
+ * Resolve a given artifact.
*
* @param artifact an artifact to resolve
* @param repositories remote repositories list
@@ -109,10 +112,31 @@ public class ResolverUtil {
* @throws ArtifactResolutionException if the artifact could not be
resolved
*/
public Artifact resolveArtifact(Artifact artifact, List<RemoteRepository>
repositories)
- throws ArtifactResolutionException {
+ throws ArtifactResolutionException, ArtifactDescriptorException {
MavenSession session = mavenSessionProvider.get();
- ArtifactRequest request = new ArtifactRequest(artifact, repositories,
null);
- ArtifactResult result =
repositorySystem.resolveArtifact(session.getRepositorySession(), request);
+ return resolveArtifact(artifact, repositories,
session.getRepositorySession());
+ }
+
+ /**
+ * Resolve a given artifact.
+ *
+ * @param artifact an artifact to resolve
+ * @param repositories remote repositories list
+ * @param session a repository system session
+ * @return resolved artifact
+ * @throws ArtifactResolutionException if the artifact could not be
resolved
+ */
+ public Artifact resolveArtifact(
+ Artifact artifact, List<RemoteRepository> repositories,
RepositorySystemSession session)
+ throws ArtifactResolutionException, ArtifactDescriptorException {
+
+ ArtifactDescriptorResult artifactDescriptorResult =
repositorySystem.readArtifactDescriptor(
+ session, new ArtifactDescriptorRequest(artifact, repositories,
null));
+
+ Artifact artifactToResolve = artifactDescriptorResult.getArtifact();
+
+ ArtifactRequest request = new ArtifactRequest(artifactToResolve,
repositories, null);
+ ArtifactResult result = repositorySystem.resolveArtifact(session,
request);
return result.getArtifact();
}
@@ -123,7 +147,7 @@ public class ResolverUtil {
* @return resolved artifact
* @throws ArtifactResolutionException if the artifact could not be
resolved
*/
- public Artifact resolvePlugin(Plugin plugin) throws
ArtifactResolutionException {
+ public Artifact resolvePlugin(Plugin plugin) throws
ArtifactResolutionException, ArtifactDescriptorException {
MavenSession session = mavenSessionProvider.get();
Artifact artifact = toArtifact(plugin);
return resolveArtifact(artifact,
session.getCurrentProject().getRemotePluginRepositories());