// Copyright FreeHEP, 2005-2007. package org.freehep.maven.nar; import java.util.Iterator; import java.util.List; import org.apache.maven.artifact.resolver.ArtifactResolver; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; /** * Downloads any dependent NAR files. This includes the noarch and aol type NAR files. * * @goal nar-download * @phase generate-sources * @requiresProject * @requiresDependencyResolution * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark Donszelmann</a> * @version $Id: NarDownloadMojo.java 12936 2007-07-05 21:26:30Z duns $ */ public class NarDownloadMojo extends AbstractDependencyMojo { /** * Artifact resolver, needed to download source jars for inclusion in * classpath. * * @component role="org.apache.maven.artifact.resolver.ArtifactResolver" * @required * @readonly */ private ArtifactResolver artifactResolver; /** * Remote repositories which will be searched for source attachments. * * @parameter expression="${project.remoteArtifactRepositories}" * @required * @readonly */ private List remoteArtifactRepositories; /** * List of classifiers which you want download. Example ppc-MacOSX-g++, * x86-Windows-msvc, i386-Linux-g++. * * @parameter expression="" */ private List classifiers; public void execute() throws MojoExecutionException, MojoFailureException { getLog().info("Using AOL: "+getAOL()); if (shouldSkip()) { getLog().info("***********************************************************************"); getLog().info("NAR Plugin SKIPPED, no NAR Libraries will be produced."); getLog().info("***********************************************************************"); return; } List narArtifacts = getNarManager().getNarDependencies("compile"); if (classifiers == null) { getNarManager().downloadAttachedNars(narArtifacts, remoteArtifactRepositories, artifactResolver, null); } else { for (Iterator j = classifiers.iterator(); j.hasNext();) { getNarManager().downloadAttachedNars(narArtifacts, remoteArtifactRepositories, artifactResolver, (String) j.next()); } } } }