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);