// Copyright FreeHEP, 2005-2006. package org.freehep.maven.nar; import java.util.Iterator; import java.util.List; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.codehaus.plexus.archiver.manager.ArchiverManager; /** * Unpacks NAR files. Unpacking happens in the local repository, * and also sets flags on binaries and corrects static libraries. * * @goal nar-unpack * @phase process-sources * @requiresProject * @requiresDependencyResolution * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark Donszelmann</a> * @version $Id: NarUnpackMojo.java 12779 2007-06-15 22:04:56Z duns $ */ public class NarUnpackMojo extends AbstractDependencyMojo { /** * List of classifiers which you want unpack. Example ppc-MacOSX-g++, * x86-Windows-msvc, i386-Linux-g++. * * @parameter expression="" */ private List classifiers; /** * To look up Archiver/UnArchiver implementations * * @parameter expression="${component.org.codehaus.plexus.archiver.manager.ArchiverManager}" * @required */ private ArchiverManager archiverManager; public void execute() throws MojoExecutionException, MojoFailureException { if (shouldSkip()) return; List narArtifacts = getNarManager().getNarDependencies("compile"); if (classifiers == null) { getNarManager().unpackAttachedNars(narArtifacts, archiverManager, null, getOS()); } else { for (Iterator j = classifiers.iterator(); j.hasNext();) { getNarManager().unpackAttachedNars(narArtifacts, archiverManager, (String) j.next(), getOS()); } } } }