refactoring: extracted ReferenceBuildinfoUtil
3 files changed
tree: 325a99f819da3b6c039e90ef4db016d9043c37cb
  1. src/
  2. .gitignore
  3. Jenkinsfile
  4. pom.xml
  5. README.md
README.md

Apache Maven Buildinfo Plugin Study

Apache License, Version 2.0, January 2004

This plugin is a study, written as a Proof Of Concept of Reproducible Builds tooling to ease reproducing Maven builds that are expected to be reproducible: once feedback will be given on Maven developper mailing list, we'll see if this will be moved to a separate Maven plugin or if its unique goal will be merged to an existing plugin.

The purpose of this plugin is:

  • to generate a buildinfo file from a build recording fingerprints of output files, as specified in Reproducible Builds for the JVM that will eventually be deployed to remote repository

  • help rebuilders to check that they local build produces the same Reproducible Build output than the reference build published to a remote repository

To use this plugin, you'll need to build and install from source, or use SHAPSHOT from https://repository.apache.org/content/repositories/snapshots

Generating buildinfo after a build

mvn verify buildinfo:buildinfo

Deploy to remote repository

Configure the plugin with its buildinfo goal in your pom.xml

Check local build against remote reference

If reference build is available in a remote repository with predefined id, like central:

mvn verify buildinfo:buildinfo -Dreference.repo=central

If reference build is available in a remote repository without predefined id, use its url instead:

mvn verify buildinfo:buildinfo -Dreference.repo=https://repository.apache.org/content/groups/maven-staging-group/

Available Reproducible Releases in Maven Central Repository