Index: src/main/java/org/apache/maven/plugin/sar/AbstractSarMojo.java
===================================================================
--- src/main/java/org/apache/maven/plugin/sar/AbstractSarMojo.java	(revision 2247)
+++ src/main/java/org/apache/maven/plugin/sar/AbstractSarMojo.java	(working copy)
@@ -17,12 +17,17 @@
  */
 
 import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
 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,30 @@
                     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
                     {

