You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2018/12/25 18:26:24 UTC

[maven-archiver] branch MSHARED-661 updated: [MSHARED-661] Remove manifest entry Built-By for reproducible builds

This is an automated email from the ASF dual-hosted git repository.

michaelo pushed a commit to branch MSHARED-661
in repository https://gitbox.apache.org/repos/asf/maven-archiver.git


The following commit(s) were added to refs/heads/MSHARED-661 by this push:
     new 1a60402  [MSHARED-661] Remove manifest entry Built-By for reproducible builds
1a60402 is described below

commit 1a604029cfdaac39d4d636775ac236c20926383e
Author: Michael Osipov <mi...@apache.org>
AuthorDate: Tue Dec 25 19:26:10 2018 +0100

    [MSHARED-661] Remove manifest entry Built-By for reproducible builds
---
 .../org/apache/maven/archiver/MavenArchiver.java   |  1 -
 src/site/apt/examples/classpath.apt                | 70 +++++++++++-----------
 src/site/apt/examples/manifest.apt                 |  5 +-
 src/site/apt/examples/manifestEntries.apt          |  1 -
 src/site/apt/examples/manifestSections.apt         |  1 -
 .../apache/maven/archiver/MavenArchiverTest.java   |  2 -
 6 files changed, 37 insertions(+), 43 deletions(-)

diff --git a/src/main/java/org/apache/maven/archiver/MavenArchiver.java b/src/main/java/org/apache/maven/archiver/MavenArchiver.java
index c184639..f762d39 100644
--- a/src/main/java/org/apache/maven/archiver/MavenArchiver.java
+++ b/src/main/java/org/apache/maven/archiver/MavenArchiver.java
@@ -507,7 +507,6 @@ public class MavenArchiver
     private void addCustomEntries( Manifest m, Map<String, String> entries, ManifestConfiguration config )
         throws ManifestException
     {
-        addManifestAttribute( m, entries, "Built-By", System.getProperty( "user.name" ) );
         addManifestAttribute( m, entries, "Build-Jdk", System.getProperty( "java.version" ) );
 
         /*
diff --git a/src/site/apt/examples/classpath.apt b/src/site/apt/examples/classpath.apt
index 8e30e61..12359c1 100644
--- a/src/site/apt/examples/classpath.apt
+++ b/src/site/apt/examples/classpath.apt
@@ -28,17 +28,17 @@ Set Up The Classpath
 * {Contents}
 
   * {{{Add}Add A Class-Path Entry To The Manifest}}
-  
+
   * {{{Make}Make The Jar Executable}}
-  
+
   * {{{Prefix}Altering The Classpath: Defining a Classpath Directory Prefix}}
-  
+
   * {{{Repository}Altering The Classpath: Using a Maven Repository-Style Classpath}}
-  
+
   * {{{Custom}Altering The Classpath: Using a Custom Classpath Format}}
-  
+
   * {{{Snapshot}Handling Snapshot Versions}}
-  
+
   []
 
 * {Add} A Class-Path Entry To The Manifest
@@ -90,7 +90,6 @@ Set Up The Classpath
 +-----+
 Manifest-Version: 1.0
 Created-By: Apache Maven ${maven.version}
-Built-By: ${user.name}
 Build-Jdk: ${java.version}
 Class-Path: plexus-utils-1.1.jar commons-lang-2.1.jar
 +-----+
@@ -149,7 +148,6 @@ Class-Path: plexus-utils-1.1.jar commons-lang-2.1.jar
 +-----+
 Manifest-Version: 1.0
 Created-By: Apache Maven ${maven.version}
-Built-By: ${user.name}
 Build-Jdk: ${java.version}
 Main-Class: fully.qualified.MainClass
 Class-Path: plexus-utils-1.1.jar commons-lang-2.1.jar
@@ -213,7 +211,7 @@ Class-Path: lib/plexus-utils-1.1.jar lib/commons-lang-2.1.jar
 
   Occasionally, you may want to include a Maven repository-style directory structure in your
   archive. If you wish to reference the dependency archives within those directories in your
-  manifest classpath, try using the <<<\<classpathLayoutType\>>>> element with a value of 
+  manifest classpath, try using the <<<\<classpathLayoutType\>>>> element with a value of
   <<<'repository'>>>, like this:
 
 +-----+
@@ -230,7 +228,7 @@ Class-Path: lib/plexus-utils-1.1.jar lib/commons-lang-2.1.jar
               <addClasspath>true</addClasspath>
               <classpathPrefix>lib/</classpathPrefix>
               <classpathLayoutType>repository</classpathLayoutType>
-              
+
               <!-- NOTE: Deprecated in version 2.4. Use 'classpathLayoutType' instead.
               <classpathMavenRepositoryLayout>true</classpathMavenRepositoryLayout>
               -->
@@ -258,7 +256,7 @@ Class-Path: lib/plexus-utils-1.1.jar lib/commons-lang-2.1.jar
 +-----+
 
   <<Note:>> In version 2.3, this feature was available by setting the <<<\<classpathMavenRepositoryLayout\>>>>
-  element to the value <<<true>>>. This configuration option has been *deprecated* in version 2.4, 
+  element to the value <<<true>>>. This configuration option has been *deprecated* in version 2.4,
   in favor of the more general <<<\<classpathLayoutType\>>>> element, where a value of <<<'repository'>>>
   will render the same behavior.
 
@@ -276,7 +274,7 @@ Class-Path: lib/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar lib/co
 
   At times, you may have dependency archives in a custom format within your own archive, one that doesn't
   conform to any of the above classpath layouts. If you wish to define a custom layout for dependency archives
-  within your archive's manifest classpath, try using the <<<\<classpathLayoutType\>>>> element with a value of 
+  within your archive's manifest classpath, try using the <<<\<classpathLayoutType\>>>> element with a value of
   <<<'custom'>>>, along with the <<<\<customClasspathLayout\>>>> element, like this:
 
 +-----+
@@ -315,35 +313,35 @@ Class-Path: lib/org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.jar lib/co
 </project>
 +-----+
 
-  This classpath layout is a little more involved than the previous examples. 
+  This classpath layout is a little more involved than the previous examples.
   To understand how the value of the <<<\<customClasspathLayout\>>>> configuration
-  is interpreted, it's useful to understand the rules applied when resolving 
+  is interpreted, it's useful to understand the rules applied when resolving
   expressions within the value:
-  
+
   [[1]] If present, trim off the prefix 'artifact.' from the expression.
-  
-  [[2]] Attempt to resolve the expression as a reference to the Artifact using 
-        reflection (eg. <<<'artifactId'>>> becomes a reference to the method 
+
+  [[2]] Attempt to resolve the expression as a reference to the Artifact using
+        reflection (eg. <<<'artifactId'>>> becomes a reference to the method
         <<<'getArtifactId()'>>>).
-  
-  [[3]] Attempt to resolve the expression as a reference to the ArtifactHandler of 
+
+  [[3]] Attempt to resolve the expression as a reference to the ArtifactHandler of
         the current Artifact, again using reflection (eg. <<<'extension'>>> becomes a reference
         to the method <<<'getExtension()'>>>).
-        
-  [[4]] Attempt to resolve the expression as a key in the special-case Properties instance, 
+
+  [[4]] Attempt to resolve the expression as a key in the special-case Properties instance,
         which contains the following mappings:
-        
-        * <<<'dashClassifier'>>>: If the Artifact has a classifier, this will be 
-                                  <<<'-${artifact.classifier}'>>>, otherwise this 
+
+        * <<<'dashClassifier'>>>: If the Artifact has a classifier, this will be
+                                  <<<'-${artifact.classifier}'>>>, otherwise this
                                   is an empty string.
-        
+
         * <<<'dashClassifier?'>>>: This is a synonym of <<<'dashClassifier'>>>.
-        
-        * <<<'groupIdPath'>>>: This is the equivalent of <<<'${artifact.groupId}'>>>, 
+
+        * <<<'groupIdPath'>>>: This is the equivalent of <<<'${artifact.groupId}'>>>,
                                with all <<<'.'>>> characters replaced by <<<'/'>>>.
-                               
+
         []
-        
+
   []
 
  The manifest classpath produced using the above configuration would look like this:
@@ -359,18 +357,18 @@ Class-Path: WEB-INF/lib/org/codehaus/plexus/plexus-utils-1.1.jar WEB-INF/lib/com
 
   <(Since 2.4)>
 
-  Depending on how you construct your archive, you may have the ability to specify whether 
+  Depending on how you construct your archive, you may have the ability to specify whether
   snapshot dependency archives are included with the version suffix <<<'-SNAPSHOT'>>>, or
   whether the unique timestamp and build-number for that archive is used. For instance,
   the {{{/plugins/maven-assembly-plugin}Assembly Plugin}} allows
-  you to make this decision in the <<<\<outputFileNameMapping\>>>> element of its 
+  you to make this decision in the <<<\<outputFileNameMapping\>>>> element of its
   <<<\<dependencySet>>>> descriptor section.
-  
+
 ** Forcing the use of -SNAPSHOT versions when using the simple (default) or repository classpath layout
 
   To force the use of <<<'-SNAPSHOT'>>> version naming, simply disable the <<<\<useUniqueVersions\>>>>
   configuration element, like this:
-  
+
 +-----+
 <useUniqueVersions>false</useUniqueVersions>
 +-----+
@@ -379,13 +377,13 @@ Class-Path: WEB-INF/lib/org/codehaus/plexus/plexus-utils-1.1.jar WEB-INF/lib/com
 
   To force the use of <<<'-SNAPSHOT'>>> version naming, simply replace <<<'${artifact.version}'>>>
   with <<<'${artifact.baseVersion}'>>> in the custom layout example above, so it looks like this:
-  
+
 +-----+
 <customClasspathLayout>WEB-INF/lib/${artifact.groupIdPath}/${artifact.artifactId}-${artifact.baseVersion}${dashClassifier?}.${artifact.extension}</customClasspathLayout>
 +-----+
 
   The full example configuration would look like this:
-  
+
 +-----+
 <project>
   ...
diff --git a/src/site/apt/examples/manifest.apt b/src/site/apt/examples/manifest.apt
index 32e6ee1..0f0c108 100644
--- a/src/site/apt/examples/manifest.apt
+++ b/src/site/apt/examples/manifest.apt
@@ -33,10 +33,12 @@ Manifest
 +-----+
 Manifest-Version: 1.0
 Created-By: Apache Maven ${maven.version}
-Built-By: ${user.name}
 Build-Jdk: ${java.version}
 +-----+
 
+<<Note:>> The <<<Build-Jdk>>> does not take toolchains configuration into account. It is the same
+JDK version as running the Maven instance.
+
 * Adding Implementation And Specification Details
 
  Starting with version 2.1, Maven Archiver no longer creates the
@@ -79,7 +81,6 @@ Build-Jdk: ${java.version}
 +-----+
 Manifest-Version: 1.0
 Created-By: Apache Maven ${maven.version}
-Built-By: ${user.name}
 Build-Jdk: ${java.version}
 Specification-Title: ${project.name}
 Specification-Version: ${project.artifact.selectedVersion.majorVersion}.${project.artifact.selectedVersion.minorVersion}
diff --git a/src/site/apt/examples/manifestEntries.apt b/src/site/apt/examples/manifestEntries.apt
index 36a6943..fe28c61 100644
--- a/src/site/apt/examples/manifestEntries.apt
+++ b/src/site/apt/examples/manifestEntries.apt
@@ -69,7 +69,6 @@ Manifest Entries
 +-----+
 Manifest-Version: 1.0
 Created-By: Apache Maven ${maven.version}
-Built-By: ${user.name}
 Build-Jdk: ${java.version}
 mode: development
 url: http://some.url.org/
diff --git a/src/site/apt/examples/manifestSections.apt b/src/site/apt/examples/manifestSections.apt
index 8efecfc..0f335d6 100644
--- a/src/site/apt/examples/manifestSections.apt
+++ b/src/site/apt/examples/manifestSections.apt
@@ -75,7 +75,6 @@ Manifest Sections
 +-----+
 Manifest-Version: 1.0
 Created-By: Apache Maven ${maven.version}
-Built-By: ${user.name}
 Build-Jdk: ${java.version}
 
 Name: foo
diff --git a/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java b/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
index a70523f..38a9b4f 100644
--- a/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
+++ b/src/test/java/org/apache/maven/archiver/MavenArchiverTest.java
@@ -500,7 +500,6 @@ public class MavenArchiverTest
         assertEquals( "Apache", manifest.get( Attributes.Name.IMPLEMENTATION_VENDOR ) );
 
         assertEquals( System.getProperty( "java.version" ), manifest.get( new Attributes.Name( "Build-Jdk" ) ) );
-        assertEquals( System.getProperty( "user.name" ), manifest.get( new Attributes.Name( "Built-By" ) ) );
     }
 
     @Test
@@ -556,7 +555,6 @@ public class MavenArchiverTest
         assertEquals( "org.apache.maven.archiver", manifest.getValue( "Automatic-Module-Name" ) );
 
         assertEquals( System.getProperty( "java.version" ), manifest.get( new Attributes.Name( "Build-Jdk" ) ) );
-        assertEquals( System.getProperty( "user.name" ), manifest.get( new Attributes.Name( "Built-By" ) ) );
 
         assertTrue( StringUtils.isEmpty( manifest.getValue( new Attributes.Name( "keyWithEmptyValue" ) ) ) );
         assertTrue( manifest.containsKey( new Attributes.Name( "keyWithEmptyValue" ) ) );