Uploaded image for project: 'Maven JAR Plugin'
  1. Maven JAR Plugin
  2. MJAR-275

outputTimestamp not applied to module-info; breaks reproducible builds

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 3.2.0
    • 3.3.0
    • None
    • None
    • Mac OS X 10.14.6
      JDK 15 (build 15+36)
      JDK 11 (build 11.0.8+10)

    Description

      Setting project.build.outputTimestamp to a fixed value allows creating reproducible builds per this guide: https://maven.apache.org/guides/mini/guide-reproducible-builds.html However, if one adds a module-info file to the project, reproducible builds break.

      This is caused by module-info.class using the latest timestamp and not project.build.outputTimestamp. I was able to identify the problem using diffoscope: https://diffoscope.org/. With it I determined the timestamp across 2 builds was constant for all but the module-info.class:

       

        -rw----     2.0 fat      862 bl defN 20-Oct-17 00:40 space/arim/libertybans/api/select/SelectionOrder.class
      │  -rw----     2.0 fat     1113 bl defN 20-Oct-17 00:40 space/arim/libertybans/api/select/SelectionOrderBuilder.class
      │  -rw----     2.0 fat     2285 bl defN 20-Oct-17 00:40 META-INF/maven/space.arim.libertybans/bans-api/pom.xml
      │  -rw----     2.0 fat       74 bl defN 20-Oct-17 00:40 META-INF/maven/space.arim.libertybans/bans-api/pom.properties
      │ --rw----     2.0 fat      557 bl defN 20-Oct-25 12:39 module-info.class
      │ +-rw----     2.0 fat      557 bl defN 20-Oct-25 12:41 module-info.class
      

       

      Note the + and - which are diffoscope's way of indicating the difference between the .jar files. Here the project.build.outputTimestamp is on 17 October. As shown, module-info has a "rebellious" timestamp.

       

      EDIT:

      Example project to reproduce the bug:

      https://github.com/A248/MJAR-275 (Renamed from https://github.com/A248/MCOMPILER-439)

      Source code is also provided as an attachment below

      Attachments

        1. MCOMPILER-439.zip
          70 kB
          Anand Beh
        2. Screenshot 2020-10-25 at 2.35.59 PM.png
          66 kB
          Anand Beh

        Issue Links

          Activity

            People

              sjaranowski Slawomir Jaranowski
              A248 Anand Beh
              Votes:
              2 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: