You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by kh...@apache.org on 2019/05/01 10:02:32 UTC
[maven-artifact-transfer] 01/01: [MSHARED-817] Change eclipse
aether dependency scope to provided
This is an automated email from the ASF dual-hosted git repository.
khmarbaise pushed a commit to branch MSHARED-817
in repository https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git
commit d71fb025bf393c604ab9bf79b66658ddcd102662
Author: Gabriel Belingueres <be...@gmail.com>
AuthorDate: Wed May 1 00:57:22 2019 -0300
[MSHARED-817] Change eclipse aether dependency scope to provided
- Changed eclipse aether dependency to provided scope.
- Removed shading of aether classes.
- Added method to import aether library inside TransferUtils to use from
a plugin.
- Modified ProjectDeployerMojo and ProjectInstallerMojo plugins used for
ITs.
---
pom.xml | 38 ++--------------------
.../plugin/project/deploy/ProjectDeployerMojo.java | 8 +++++
.../project/install/ProjectInstallerMojo.java | 6 ++++
.../shared/transfer/artifact/TransferUtils.java | 23 +++++++++++++
4 files changed, 39 insertions(+), 36 deletions(-)
diff --git a/pom.xml b/pom.xml
index 767ea44..e373e1e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -68,40 +68,6 @@
</executions>
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <!--
- ! explicit overwrite cause otherwise we get an 2.4.3...instead.
- -->
- <version>3.1.0</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <artifactSet>
- <includes>
- <include>org.eclipse.aether:aether-util</include>
- </includes>
- </artifactSet>
- <filters>
- <filter>
- <artifact>org.eclipse.aether:aether-util</artifact>
- <includes>
- <!-- to prevent java.lang.ClassNotFoundException: org.eclipse.aether.util.artifact.SubArtifact (M3.1.1 - M3.3.3) -->
- <include>org/eclipse/aether/util/artifact/SubArtifact.class</include>
- <!-- to prevent java.lang.ClassNotFoundException: org.eclipse.aether.util.filter.* (M3.1.1+ ) -->
- <include>org/eclipse/aether/util/filter/*</include>
- </includes>
- </filter>
- </filters>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
@@ -206,7 +172,7 @@
<groupId>org.sonatype.aether</groupId>
<artifactId>aether-impl</artifactId>
<version>1.7</version>
- <scope>test</scope>
+ <scope>provided</scope>
</dependency>
<!-- Maven 3.1.x and above -->
@@ -220,7 +186,7 @@
<groupId>org.eclipse.aether</groupId>
<artifactId>aether-util</artifactId>
<version>0.9.0.M2</version>
- <!-- provided scoped dependencies aren't shaded -->
+ <scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.aether</groupId>
diff --git a/src/it/maven-project-deployer-plugin/src/main/java/org/apache/maven/plugin/project/deploy/ProjectDeployerMojo.java b/src/it/maven-project-deployer-plugin/src/main/java/org/apache/maven/plugin/project/deploy/ProjectDeployerMojo.java
index 26c794e..13967bf 100644
--- a/src/it/maven-project-deployer-plugin/src/main/java/org/apache/maven/plugin/project/deploy/ProjectDeployerMojo.java
+++ b/src/it/maven-project-deployer-plugin/src/main/java/org/apache/maven/plugin/project/deploy/ProjectDeployerMojo.java
@@ -32,18 +32,21 @@ import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.plugins.annotations.Component;
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.project.MavenProjectHelper;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.artifact.TransferUtils;
import org.apache.maven.shared.transfer.artifact.deploy.ArtifactDeployerException;
import org.apache.maven.shared.transfer.project.NoFileAssignedException;
import org.apache.maven.shared.transfer.project.deploy.ProjectDeployer;
import org.apache.maven.shared.transfer.project.deploy.ProjectDeployerRequest;
import org.apache.maven.shared.transfer.project.install.ProjectInstaller;
import org.apache.maven.shared.transfer.repository.RepositoryManager;
+import org.codehaus.plexus.classworlds.realm.NoSuchRealmException;
/**
* This mojo is implemented to test the {@link ProjectInstaller} part of the maven-artifact-transfer shared component.
@@ -65,6 +68,9 @@ public class ProjectDeployerMojo
@Parameter( defaultValue = "${session}", required = true, readonly = true )
protected MavenSession session;
+ @Parameter( defaultValue = "${plugin}", required = true, readonly = true )
+ protected PluginDescriptor pluginDescriptor;
+
@Component
private ProjectDeployer deployer;
@@ -112,6 +118,8 @@ public class ProjectDeployerMojo
pdr.setProject( session.getCurrentProject());
ArtifactRepository repo = session.getCurrentProject().getDistributionManagementArtifactRepository();
+
+ TransferUtils.importAetherLibrary( pluginDescriptor );
deployer.deploy( session.getProjectBuildingRequest(), pdr, repo );
}
catch ( IOException e )
diff --git a/src/it/maven-project-installer-plugin/src/main/java/org/apache/maven/plugin/project/install/ProjectInstallerMojo.java b/src/it/maven-project-installer-plugin/src/main/java/org/apache/maven/plugin/project/install/ProjectInstallerMojo.java
index 2e6a878..ab910e4 100644
--- a/src/it/maven-project-installer-plugin/src/main/java/org/apache/maven/plugin/project/install/ProjectInstallerMojo.java
+++ b/src/it/maven-project-installer-plugin/src/main/java/org/apache/maven/plugin/project/install/ProjectInstallerMojo.java
@@ -31,12 +31,14 @@ import org.apache.maven.execution.MavenSession;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
import org.apache.maven.plugins.annotations.Component;
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.project.MavenProjectHelper;
import org.apache.maven.project.ProjectBuildingRequest;
+import org.apache.maven.shared.transfer.artifact.TransferUtils;
import org.apache.maven.shared.transfer.artifact.install.ArtifactInstallerException;
import org.apache.maven.shared.transfer.project.NoFileAssignedException;
import org.apache.maven.shared.transfer.project.install.ProjectInstaller;
@@ -63,6 +65,9 @@ public class ProjectInstallerMojo
@Parameter( defaultValue = "${session}", required = true, readonly = true )
protected MavenSession session;
+ @Parameter( defaultValue = "${plugin}", required = true, readonly = true )
+ protected PluginDescriptor pluginDescriptor;
+
@Component
private ProjectInstaller installer;
@@ -108,6 +113,7 @@ public class ProjectInstallerMojo
ProjectInstallerRequest pir = new ProjectInstallerRequest();
pir.setProject( session.getCurrentProject());
+ TransferUtils.importAetherLibrary( pluginDescriptor );
installer.install( pbr, pir );
}
catch ( ArtifactInstallerException e )
diff --git a/src/main/java/org/apache/maven/shared/transfer/artifact/TransferUtils.java b/src/main/java/org/apache/maven/shared/transfer/artifact/TransferUtils.java
index 83fa7e1..fc07b95 100644
--- a/src/main/java/org/apache/maven/shared/transfer/artifact/TransferUtils.java
+++ b/src/main/java/org/apache/maven/shared/transfer/artifact/TransferUtils.java
@@ -24,6 +24,9 @@ import org.apache.maven.model.Extension;
import org.apache.maven.model.Parent;
import org.apache.maven.model.Plugin;
import org.apache.maven.model.ReportPlugin;
+import org.apache.maven.plugin.MojoExecutionException;
+import org.apache.maven.plugin.descriptor.PluginDescriptor;
+import org.codehaus.plexus.classworlds.realm.NoSuchRealmException;
/**
* Utility class
@@ -122,4 +125,24 @@ public final class TransferUtils
return coordinate;
}
+ /**
+ * Import the core Aether library from the maven distribution.
+ *
+ * @param pluginDescriptor the plugin descriptor where the operation will be executed.
+ * @throws MojoExecutionException if there is an error when importing the library.
+ * @since 0.11.1
+ */
+ public static void importAetherLibrary( PluginDescriptor pluginDescriptor )
+ throws MojoExecutionException
+ {
+ try
+ {
+ pluginDescriptor.getClassRealm().importFrom( "plexus.core", "org.eclipse.aether.util" );
+ }
+ catch ( NoSuchRealmException e )
+ {
+ throw new MojoExecutionException( "NoSuchRealmException", e );
+ }
+ }
+
}