diff --git a/tooling/karaf-maven-plugin/pom.xml b/tooling/karaf-maven-plugin/pom.xml
index a8d541340c1..c450a284ba4 100644
--- a/tooling/karaf-maven-plugin/pom.xml
+++ b/tooling/karaf-maven-plugin/pom.xml
@@ -169,7 +169,7 @@
org.codehaus.plexus
plexus-archiver
- 4.2.7
+ 4.11.0
org.apache.felix
diff --git a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/KarMojo.java b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/KarMojo.java
index 75b96aa6fe8..9c7b7d003a8 100644
--- a/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/KarMojo.java
+++ b/tooling/karaf-maven-plugin/src/main/java/org/apache/karaf/tooling/KarMojo.java
@@ -50,13 +50,13 @@
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
-import org.apache.maven.plugins.annotations.Component;
import org.apache.maven.plugins.annotations.LifecyclePhase;
import org.apache.maven.plugins.annotations.Mojo;
import org.apache.maven.plugins.annotations.Parameter;
import org.apache.maven.plugins.annotations.ResolutionScope;
-import org.codehaus.plexus.archiver.Archiver;
import org.codehaus.plexus.archiver.jar.JarArchiver;
+import javax.inject.Inject;
+import javax.inject.Named;
/**
* Assemble a kar archive from a features.xml file
@@ -75,7 +75,8 @@ public class KarMojo extends MojoSupport {
/**
* The Jar archiver.
*/
- @Component(role = Archiver.class, hint="jar")
+ @Inject
+ @Named("jar")
private JarArchiver jarArchiver = null;
/**
@@ -264,6 +265,7 @@ private File createArchive(List bundles, File featuresFile, String gro
// configure for Reproducible Builds based on outputTimestamp value
archiver.configureReproducible(outputTimestamp);
+ List tempMetadataFiles = new ArrayList<>();
try {
//TODO should .kar be a bundle?
// archive.addManifestEntry(Constants.BUNDLE_NAME, project.getName());
@@ -345,12 +347,7 @@ private File createArchive(List bundles, File featuresFile, String gro
}
jarArchiver.addFile(metadataTmp, repositoryPath + layout.pathOf(artifact).substring(0, layout.pathOf(artifact).lastIndexOf('/')) + "/maven-metadata-local.xml");
-
- try {
- metadataTmp.delete();
- } catch (final Exception ex) {
- getLog().warn("Cannot delete temporary created file.", ex);
- }
+ tempMetadataFiles.add(metadataTmp);
}
String targetFileName = repositoryPath + layout.pathOf(artifact);
@@ -362,6 +359,16 @@ private File createArchive(List bundles, File featuresFile, String gro
}
archiver.createArchive(mavenSession, project, archive);
+ for (File tempMetadataFile : tempMetadataFiles) {
+ try {
+ if (!tempMetadataFile.delete()) {
+ getLog().warn("Cannot delete temporary created file: " + tempMetadataFile.getAbsolutePath());
+ }
+ } catch (final Exception ex) {
+ getLog().warn("Cannot delete temporary created file: " + tempMetadataFile.getAbsolutePath(), ex);
+ }
+ }
+
return archiveFile;
} catch (Exception e) {
throw new MojoExecutionException("Failed to create archive", e);