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

maven jar plugin does not interpret build outputTimestamp correctly

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 3.3.0
    • waiting-for-feedback
    • None
    • None

    Description

      consider a minimal project that packages a jar:

      % DATE=$(date -Iseconds) ; echo $DATE ; mvn -q clean package ; jar tvf target/jartest-0.1-SNAPSHOT.jar

      2024-02-10T21:44:53-08:00

           0 Sat Feb 10 21:44:54 PST 2024 META-INF/
         568 Sat Feb 10 21:44:54 PST 2024 META-INF/MANIFEST.MF
           0 Sat Feb 10 21:44:54 PST 2024 META-INF/maven/
           0 Sat Feb 10 21:44:54 PST 2024 META-INF/maven/jartest/
           0 Sat Feb 10 21:44:54 PST 2024 META-INF/maven/jartest/jartest/
           5 Sat Feb 10 21:44:54 PST 2024 testfile.txt
         575 Sat Feb 10 21:39:50 PST 2024 META-INF/maven/jartest/jartest/pom.xml
          56 Sat Feb 10 21:44:54 PST 2024 META-INF/maven/jartest/jartest/pom.properties

      Note how the timestamp returned by the date command and the timestamps of the entries in the jar are basically the same (around 21:44:53 - 21:44:54 on Feb 10th, 2024)

      Now use that date as the project build timestamp:

      DATE=$(date -Iseconds) ; echo $DATE ; mvn -q -Dproject.build.outputTimestamp=$DATE clean package ; jar tvf target/jartest-0.1-SNAPSHOT.jar
      2024-02-10T21:46:30-08:00

           0 Sun Feb 11 05:46:30 PST 2024 META-INF/
         568 Sun Feb 11 05:46:30 PST 2024 META-INF/MANIFEST.MF
           0 Sun Feb 11 05:46:30 PST 2024 META-INF/maven/
           0 Sun Feb 11 05:46:30 PST 2024 META-INF/maven/jartest/
           0 Sun Feb 11 05:46:30 PST 2024 META-INF/maven/jartest/jartest/
           5 Sun Feb 11 05:46:30 PST 2024 testfile.txt
         575 Sun Feb 11 05:46:30 PST 2024 META-INF/maven/jartest/jartest/pom.xml
          56 Sun Feb 11 05:46:30 PST 2024 META-INF/maven/jartest/jartest/pom.properties

       

      The timestamp and the entries in the jar differ by eight hours (the offset of my local timezone).

      When forcing UTC:

      DATE=$(TZ=UTC date -Iseconds) ; echo $DATE ; mvn -q -Dproject.build.outputTimestamp=$DATE clean package ; jar tvf target/jartest-0.1-SNAPSHOT.jar

      2024-02-11T05:48:22+00:00

           0 Sun Feb 11 05:48:22 PST 2024 META-INF/
         568 Sun Feb 11 05:48:22 PST 2024 META-INF/MANIFEST.MF
           0 Sun Feb 11 05:48:22 PST 2024 META-INF/maven/
           0 Sun Feb 11 05:48:22 PST 2024 META-INF/maven/jartest/
           0 Sun Feb 11 05:48:22 PST 2024 META-INF/maven/jartest/jartest/
           5 Sun Feb 11 05:48:22 PST 2024 testfile.txt
         575 Sun Feb 11 05:48:22 PST 2024 META-INF/maven/jartest/jartest/pom.xml
          56 Sun Feb 11 05:48:22 PST 2024 META-INF/maven/jartest/jartest/pom.properties

      The timestamp is "correct" but I passed it in as UTC but the jar plugin considers it "local time" and silently attaches PST as timezone. This is where the eight hours discrepancy come from.

      This seems to be specific to the outputTimestamp parsing of the jar plugin. 

       

       

       

       

       

       

       

       

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              henning Henning Schmiedehausen
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated: