package org.codehaus.mojo.repositorytools;
import java.io.File;
import java.util.List;
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;
/**
* <p>
* Copies all plugins of a given group in a remote repository to a local
* repository.
* </p>
*
* @goal add-plugin-group
* @author tom
*/
public class AddPluginGroupMojo extends AbstractAddMojo
{
/**
* The group that should be added
*
* @parameter expression="${group}"
*/
private String group;
/**
* Only download release versions. If transitive is true, older versions may
* be implicitly downloaded.
*
* @parameter default-value="true"
*/
private boolean releaseOnly;
/**
* @component
* @required
* @readonly
*/
private LocalRepositoryBuilder builder;
/**
* @component
* @required
* @readonly
*/
private CLITools cliTools;
public void execute() throws MojoExecutionException, MojoFailureException
{
try
{
ArtifactRepository localRepository = cliTools.createLocalRepository(new File(local));
List remoteRepositories = cliTools.createRemoteRepositories(remote);
builder.addPluginGroup(group, localRepository, remoteRepositories, releaseOnly, transitive);
}
catch (RepositoryToolsException e)
{
throw new MojoExecutionException("Error adding plugin group", e);
}
}
}