diff --git a/src/it/projects/reproducible/pom.xml b/src/it/projects/reproducible/pom.xml index e21fba163..4595ec0d1 100644 --- a/src/it/projects/reproducible/pom.xml +++ b/src/it/projects/reproducible/pom.xml @@ -50,7 +50,7 @@ - false diff --git a/src/it/projects/reproducible/verify.groovy b/src/it/projects/reproducible/verify.groovy index d96b38ae5..9426500bb 100644 --- a/src/it/projects/reproducible/verify.groovy +++ b/src/it/projects/reproducible/verify.groovy @@ -18,13 +18,20 @@ * under the License. */ -//import java.util.zip.* +import java.util.jar.*; import org.apache.commons.compress.archivers.zip.* File deployDir = new File( basedir, 'target/repo/org/apache/maven/its/reproducible/1.0' ) assert deployDir.exists() +// Minimal Manifest was created +JarFile jarFile = new JarFile( new File( deployDir, "reproducible-1.0-src.jar" ) ) +Manifest mf = jarFile.getManifest() +Attributes attrs = mf.getMainAttributes() +assert attrs.size() == 1 +assert attrs.containsKey(Attributes.Name.MANIFEST_VERSION) + ZipFile zip = new ZipFile( new File( deployDir, "reproducible-1.0-src.zip" ) ) StringBuilder sb = new StringBuilder() StringBuilder sb2 = new StringBuilder() diff --git a/src/it/projects/reproducible/zip-content-755.txt b/src/it/projects/reproducible/zip-content-755.txt index 4a978b77d..8775435c2 100644 --- a/src/it/projects/reproducible/zip-content-755.txt +++ b/src/it/projects/reproducible/zip-content-755.txt @@ -28,5 +28,5 @@ executable: 100755 resulting sha1: 97d0ea3b4a87cd3ea78edd1c3c25914d69ea97f3 reproducible-1.0-src.zip.sha1 -a0c4cf1ed244e60221e12367f50ff676066b8e65 reproducible-1.0-src.jar.sha1 +d3aec46dedbfc5dcb31f7055f130860aeb8fcf66 reproducible-1.0-src.jar.sha1 bf93dd529253157352b87097d9d23eba8c9ca61a reproducible-1.0-src.tar.sha1 diff --git a/src/it/projects/reproducible/zip-content-775.txt b/src/it/projects/reproducible/zip-content-775.txt index 0fdde3a34..64a9e72d7 100644 --- a/src/it/projects/reproducible/zip-content-775.txt +++ b/src/it/projects/reproducible/zip-content-775.txt @@ -28,5 +28,5 @@ executable: 100775 resulting sha1: 50116502c6107740c2a35ef296b5abda08c5dec7 reproducible-1.0-src.zip.sha1 -cc7e3a984179f63d6b37bc86c61e9cc461c62288 reproducible-1.0-src.jar.sha1 +3bb81a423ca18a01dd76e0f872c66a1a7528f064 reproducible-1.0-src.jar.sha1 3efc10ec9c3099ba061e58d5b2a935ba643da237 reproducible-1.0-src.tar.sha1 diff --git a/src/it/projects/reproducible/zip-content-win.txt b/src/it/projects/reproducible/zip-content-win.txt index 1dd4411d6..d69527347 100644 --- a/src/it/projects/reproducible/zip-content-win.txt +++ b/src/it/projects/reproducible/zip-content-win.txt @@ -28,5 +28,5 @@ executable: 100644 resulting sha1: cb1dc226d702733bfa405b7090b74ab7e77bf39e reproducible-1.0-src.zip.sha1 -3b31d88a36985f526fb3fe6ba5987387e4887f23 reproducible-1.0-src.jar.sha1 +a916d0299f54a790ede766709ce54daebef5e818 reproducible-1.0-src.jar.sha1 b85f960069d6a444f928a87761b63fde60ea687d reproducible-1.0-src.tar.sha1 diff --git a/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java b/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java index 6ec010c80..a1128706f 100644 --- a/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java +++ b/src/main/java/org/apache/maven/plugins/assembly/archive/DefaultAssemblyArchiver.java @@ -293,10 +293,7 @@ protected Archiver createArchiver( final List extraSelectors = new ArrayList<>(); final List extraFinalizers = new ArrayList<>(); if (archiver instanceof JarArchiver) { - if (mergeManifestMode != null) { - ((JarArchiver) archiver) - .setFilesetmanifest(JarArchiver.FilesetManifestConfig.valueOf(mergeManifestMode)); - } + configureJarArchiver((JarArchiver) archiver, mergeManifestMode); extraSelectors.add(new JarSecurityFileSelector()); @@ -351,6 +348,15 @@ protected Archiver createArchiver( return archiver; } + private void configureJarArchiver(JarArchiver archiver, String mergeManifestMode) { + + if (mergeManifestMode != null) { + archiver.setFilesetmanifest(JarArchiver.FilesetManifestConfig.valueOf(mergeManifestMode)); + } + + archiver.setMinimalDefaultManifest(true); + } + private void configureContainerDescriptorHandler( final ContainerDescriptorHandler handler, final Xpp3Dom config,