package org.codehaus.mojo.repositorytools; import java.io.File; import java.util.List; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.codehaus.mojo.repositorytools.components.CLITools; import org.codehaus.mojo.repositorytools.components.LocalRepositoryBuilder; import org.codehaus.mojo.repositorytools.components.RepositoryToolsException; /** * Creates a local repository with all the transitive dependencies of a * specified artifact. * * @goal add-artifact * @requiresProject false * @author tom */ public class AddArtifactMojo extends AbstractAddMojo { /** * @component * @required * @readonly */ private LocalRepositoryBuilder builder; /** * The artifact that should be resolved, in the form * groupId:artifactId:version. For artifacts (like plugins) that have release information * in their metadata, the version string RELEASE can be * used to retrieve the most recent release version. * * @parameter expression="${artifact}" * @required */ private String artifact; /** * @component * @required * @readonly */ private CLITools cliTools; public void execute() throws MojoExecutionException, MojoFailureException { try { Artifact a = cliTools.createArtifact(artifact, "pom"); ArtifactRepository localRepository = cliTools.createLocalRepository(new File(local)); List remoteRepositories = cliTools.createRemoteRepositories(remote); builder.addArtifact(a, localRepository, remoteRepositories, transitive); } catch (RepositoryToolsException e) { throw new MojoExecutionException( "An error occurred while deploying: " + e.getMessage(), e); } } }