This is an automated email from the ASF dual-hosted git repository. rfscholte pushed a commit to branch MSHARED-817 in repository https://gitbox.apache.org/repos/asf/maven-artifact-transfer.git
commit 7f047af3a41594cd759ba5776bcff6aa28b346ba Author: Gabriel Belingueres <[email protected]> AuthorDate: Wed May 1 00:57:22 2019 -0300 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 a87744a..9c8f757 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 ); + } + } + }
