Fork me on GitHub

reproducible-build:strip-jar

Full name:

io.github.zlika:reproducible-build-maven-plugin:0.16:strip-jar

Description:

Fixes the produced artifacts (ZIP/JAR/WAR/EAR) to make the build reproducible.

Attributes:

  • The goal is thread-safe and supports parallel builds.
  • Binds by default to the lifecycle phase: pre-integration-test.

Required Parameters

Name Type Since Description
<outputDirectory> File - Directory where to find zip/jar/war/ear files for stripping.
Default value is: ${project.build.directory}.
User property is: reproducible.outputDirectory.

Optional Parameters

Name Type Since Description
<excludes> List - A list of filename exclusion patterns. File names are checked against exclusion patterns and, if at least one exclusion pattern matches, the file is *not* considered a candidate for stripping. Exclusion patterns are checked *after* inclusion patterns. By default, no files are excluded.
User property is: reproducible.excludes.
<fixZipExternalFileAttributes> boolean - If enabled, the ZIP external file attributes will be forced to rw-r--r for files and rwxr-xr-x for folders. This parameter only applies to JAR/WAR files.
Default value is: false.
User property is: reproducible.fixZipExternalFileAttributes.
<includes> List - A list of filename inclusion patterns. File names are checked against inclusion patterns and, if at least one inclusion pattern matches, the file is considered a candidate for stripping. Inclusion patterns are checked *before* exclusion patterns. By default, all files are included.
User property is: reproducible.includes.
<manifestAttributes> List - Additional manifest attributes to strip. Currently, only single-line attributes are supported.
User property is: reproducible.manifestAttributes.
<nestedIncludes> List - A list of nested filename inclusion patterns. File names are checked against nested inclusion patterns and, if at least one nested inclusion pattern matches, the file is considered a candidate for stripping. By default, no nested files are included.
User property is: reproducible.nestedIncludes.
<newLineTextFiles> List - (no description)
User property is: reproducible.newLineTextFiles.
<overwrite> boolean - By default, the stripping is done in-place. To create new files without changing the original ones, set this parameter to "false". The new files are named by appending "-stripped" to the original file name.
Default value is: true.
User property is: reproducible.overwrite.
<skip> boolean - If true, skips the execution of the goal.
Default value is: false.
User property is: reproducible.skip.
<zipDateTime> String - By default, timestamp of zip file entries set at midnight on January 1, 2000. Set this parameter to desired date and time if necessary.
Default value is: 20000101000000.
User property is: reproducible.zipDateTime.
<zipDateTimeFormatPattern> String - By default, zipDateTime format pattern is "yyyyMMddHHmmss". Set custom format pattern if necessary. Pattern must be valid for DateTimeFormatter.ofPattern().
Default value is: yyyyMMddHHmmss.
User property is: reproducible.zipDateTimeFormatPattern.

Parameter Details

<excludes>

A list of filename exclusion patterns. File names are checked against exclusion patterns and, if at least one exclusion pattern matches, the file is *not* considered a candidate for stripping. Exclusion patterns are checked *after* inclusion patterns. By default, no files are excluded.
  • Type: java.util.List
  • Required: No
  • User Property: reproducible.excludes

<fixZipExternalFileAttributes>

If enabled, the ZIP external file attributes will be forced to rw-r--r for files and rwxr-xr-x for folders. This parameter only applies to JAR/WAR files.
  • Type: boolean
  • Required: No
  • User Property: reproducible.fixZipExternalFileAttributes
  • Default: false

<includes>

A list of filename inclusion patterns. File names are checked against inclusion patterns and, if at least one inclusion pattern matches, the file is considered a candidate for stripping. Inclusion patterns are checked *before* exclusion patterns. By default, all files are included.
  • Type: java.util.List
  • Required: No
  • User Property: reproducible.includes

<manifestAttributes>

Additional manifest attributes to strip. Currently, only single-line attributes are supported.
  • Type: java.util.List
  • Required: No
  • User Property: reproducible.manifestAttributes

<nestedIncludes>

A list of nested filename inclusion patterns. File names are checked against nested inclusion patterns and, if at least one nested inclusion pattern matches, the file is considered a candidate for stripping. By default, no nested files are included.
  • Type: java.util.List
  • Required: No
  • User Property: reproducible.nestedIncludes

<newLineTextFiles>

(no description)
  • Type: java.util.List
  • Required: No
  • User Property: reproducible.newLineTextFiles

<outputDirectory>

Directory where to find zip/jar/war/ear files for stripping.
  • Type: java.io.File
  • Required: Yes
  • User Property: reproducible.outputDirectory
  • Default: ${project.build.directory}

<overwrite>

By default, the stripping is done in-place. To create new files without changing the original ones, set this parameter to "false". The new files are named by appending "-stripped" to the original file name.
  • Type: boolean
  • Required: No
  • User Property: reproducible.overwrite
  • Default: true

<skip>

If true, skips the execution of the goal.
  • Type: boolean
  • Required: No
  • User Property: reproducible.skip
  • Default: false

<zipDateTime>

By default, timestamp of zip file entries set at midnight on January 1, 2000. Set this parameter to desired date and time if necessary.
  • Type: java.lang.String
  • Required: No
  • User Property: reproducible.zipDateTime
  • Default: 20000101000000

<zipDateTimeFormatPattern>

By default, zipDateTime format pattern is "yyyyMMddHHmmss". Set custom format pattern if necessary. Pattern must be valid for DateTimeFormatter.ofPattern().
  • Type: java.lang.String
  • Required: No
  • User Property: reproducible.zipDateTimeFormatPattern
  • Default: yyyyMMddHHmmss