diff options
Diffstat (limited to 'src/main/java/org/apache/maven/plugin/nar/AbstractNarLayout.java')
-rw-r--r-- | src/main/java/org/apache/maven/plugin/nar/AbstractNarLayout.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/main/java/org/apache/maven/plugin/nar/AbstractNarLayout.java b/src/main/java/org/apache/maven/plugin/nar/AbstractNarLayout.java index 21e67e5..e5dc7b5 100644 --- a/src/main/java/org/apache/maven/plugin/nar/AbstractNarLayout.java +++ b/src/main/java/org/apache/maven/plugin/nar/AbstractNarLayout.java @@ -27,10 +27,11 @@ import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectHelper; import org.codehaus.plexus.archiver.Archiver; import org.codehaus.plexus.archiver.ArchiverException; +import org.codehaus.plexus.archiver.manager.ArchiverManager; +import org.codehaus.plexus.archiver.manager.NoSuchArchiverException; import org.codehaus.plexus.archiver.zip.ZipArchiver; /** - * * @author Mark Donszelmann (Mark.Donszelmann@gmail.com) * @version $Id$ */ @@ -38,8 +39,8 @@ public abstract class AbstractNarLayout implements NarLayout, NarConstants { - protected final void attachNar( MavenProjectHelper projectHelper, MavenProject project, String classifier, File dir, - String include ) + protected final void attachNar( ArchiverManager archiverManager, MavenProjectHelper projectHelper, MavenProject project, + String classifier, File dir, String include ) throws MojoExecutionException { File narFile = @@ -49,13 +50,17 @@ public abstract class AbstractNarLayout { narFile.delete(); } - Archiver archiver = new ZipArchiver(); try { + Archiver archiver = archiverManager.getArchiver( NarConstants.NAR_ROLE_HINT ); archiver.addDirectory( dir, new String[] { include }, null ); archiver.setDestFile( narFile ); archiver.createArchive(); } + catch ( NoSuchArchiverException e ) + { + throw new MojoExecutionException( "NAR: cannot find archiver", e ); + } catch ( ArchiverException e ) { throw new MojoExecutionException( "NAR: cannot create NAR archive '" + narFile + "'", e ); |