Index: . =================================================================== --- . (revision 1841) +++ . (working copy) @@ -17,6 +17,8 @@ */ import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; @@ -23,6 +25,9 @@ import java.util.Iterator; import java.util.List; import java.util.Set; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; +import java.util.zip.ZipOutputStream; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.resolver.filter.ScopeArtifactFilter; @@ -30,6 +35,7 @@ import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.project.MavenProject; import org.codehaus.plexus.util.FileUtils; +import org.codehaus.plexus.util.IOUtil; public abstract class AbstractSarMojo extends AbstractMojo @@ -176,7 +182,29 @@ if ( "jar".equals( type ) && ! excludes.contains( descriptor ) ) { getLog().info( " o " + descriptor ); - FileUtils.copyFileToDirectory( artifact.getFile(), libDirectory ); + + // copy jar skipping maven .xml files which would + // upset the JBoss JARDeployer. + ZipInputStream zis = new ZipInputStream(new FileInputStream(artifact.getFile())); + ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(new File(libDirectory, artifact.getFile().getName()))); + + try { + ZipEntry ze = null; + while(null != (ze = zis.getNextEntry())) { + String name = ze.getName(); + getLog().debug( " - " + name ); + if(name.startsWith("META-INF/maven") && + name.endsWith(".xml")) { + getLog().info( " ! skipping " + name ); + continue; + } + zos.putNextEntry(ze); + IOUtil.copy(zis, zos); + } + } finally { + zis.close(); + zos.close(); + } } else {