You are viewing a plain text version of this content. The canonical link for it is here.
Posted to site-commits@maven.apache.org by sv...@apache.org on 2020/07/11 21:31:48 UTC

svn commit: r1879795 - in /maven/website/content: guides/mini/guide-reproducible-builds.html maven-site-1.0-site.jar

Author: svn-site-role
Date: Sat Jul 11 21:31:48 2020
New Revision: 1879795

Log:
Site checkin for project Apache Maven Site

Modified:
    maven/website/content/guides/mini/guide-reproducible-builds.html
    maven/website/content/maven-site-1.0-site.jar

Modified: maven/website/content/guides/mini/guide-reproducible-builds.html
==============================================================================
--- maven/website/content/guides/mini/guide-reproducible-builds.html (original)
+++ maven/website/content/guides/mini/guide-reproducible-builds.html Sat Jul 11 21:31:48 2020
@@ -169,16 +169,17 @@
 <p>There is no Maven version prerequisite. Everything happens at plugin level:</p>
 <ol style="list-style-type: decimal">
 <li>Upgrade your plugins to reproducible versions, particularly <code>maven-jar-plugin</code>, <code>maven-source-plugin</code> and <code>maven-assembly-plugin</code> to version 3.2.0 minimum.</li>
-<li>Add a <code>project.build.outputTimestamp</code> property to the project's pom.xml with the timestamp value that will be used in zip/jar/tar archives (see FAQ for future value update strategy):
+<li>Add a <code>project.build.outputTimestamp</code> property to the project's <code>pom.xml</code> with the timestamp value that will be used in zip/jar/tar archives (see FAQ for future value update strategy):
 <div class="source"><pre class="prettyprint linenums">   &lt;properties&gt;
      &lt;project.build.outputTimestamp&gt;2019-10-02T08:04:00Z&lt;/project.build.outputTimestamp&gt;
    &lt;/properties&gt;</pre></div></li></ol>
 <p>You have the basics configured. The output should be reproducible now.</p></section><section>
 <h3><a name="How_to_test_and_fix_my_Maven_build_reproducibility.3F"></a>How to test and fix my Maven build reproducibility?</h3>
-<p>Using <a class="externalLink" href="https://github.com/apache/maven-artifact-plugin"><code>maven-artifact-plugin</code>'s <code>buildinfo</code> goal</a>, you can check that two builds give the same output:</p>
+<p>Using <a class="externalLink" href="https://github.com/apache/maven-artifact-plugin"><code>maven-artifact-plugin</code>'s <code>buildinfo</code> goal</a>, you can check that the second build of your project produce the same output than an initial build:</p>
 <ol style="list-style-type: decimal">
-<li>build and install: <code>mvn clean install -e -DskipTests artifact:buildinfo</code></li>
-<li>rebuild and check against the previous install: <code>mvn clean verify -e -DskipTests artifact:buildinfo -Dreference.repo=central</code></li></ol>
+<li>build and install your project: <code>mvn clean install -e -DskipTests</code> (don't hesitate to customize arguments to better match your project)</li>
+<li>rebuild (without installing) and check against the previous install: <code>mvn clean verify -e -DskipTests artifact:buildinfo -Dreference.repo=central</code></li></ol>
+<p>The <code>buildinfo</code> goal in the second run will calculate fingerprints for the second build output and for the initial installed output, then compare the 2 build informations and display result.</p>
 <p>If something is still not reproducible:</p>
 <ol style="list-style-type: decimal">
 <li>Use <a class="externalLink" href="https://diffoscope.org/">diffoscope</a> to find the unstable output. The <code>artifact:buildinfo</code> goal proposes a command with path to files: just copy/paste to launch.</li>
@@ -194,8 +195,13 @@
 <p>You can have a look at <a class="externalLink" href="https://github.com/jvm-repo-rebuild/reproducible-central">Reproducible Central</a> to see which projects releases have been checked as reproducible by rebuilding independently from the reference build published in Central Repository. You can also check for yourself that you can rebuild locally and get the same result.</p></section><section>
 <h3><a name="FAQ"></a>FAQ</h3>
 <ul>
-<li>Q. Can the <code>project.build.outputTimestamp</code> property be updated automatically at release time?
-<p>A. Yes. Details depend on your release process tooling: if you use maven-release-plugin, you'll need version 3.0.0-M1 or later (see <a class="externalLink" href="https://issues.apache.org/jira/browse/MRELEASE-1029">MRELEASE-1029</a>). If you have a custom release process tooling, you'll need to add the feature to your tooling. Don't hesitate to share your questions or solution on <a href="/mailing-lists.html">user mailing-list</a>.</p></li>
+<li>Q. Can the <code>project.build.outputTimestamp</code> property in <code>pom.xml</code> be updated automatically at release time?
+<p>A. Yes.</p>
+<p>Details depend on your release process tooling:</p>
+<ul>
+<li>if you use <a href="/plugins/maven-release-plugin/">maven-release-plugin</a>, you'll need <b>version 3.0.0-M1 or later</b>: it will automatically update the timestamp value in <code>pom.xml</code> during the release in the same commit that updates version,</li>
+<li>if you have a custom release process tooling, you'll need to add the feature to your release tooling.</li></ul>
+<p>Don't hesitate to share your questions or solutions on <a href="/mailing-lists.html">user mailing-list</a>.</p></li>
 <li>Q. Which additional plugins need to be updated for Reproducible Builds?
 <p>A. Here is a simplified list:</p>
 <table border="1" class="table table-striped">

Modified: maven/website/content/maven-site-1.0-site.jar
==============================================================================
Binary files - no diff available.