How to NOT make your builds reproducible


How to not make reproducible builds: Add this to your Java project's pom.xml:

<profile>
  <id>jdk11+</id>
  <activation>
    <jdk>[11,)</jdk>
  </activation>
  <dependencies>
    <dependency>
      <groupId>com.sun.activation</groupId>
      <artifactId>jakarta.activation</artifactId>
    </dependency>
  </dependencies>
</profile>

This gem from jersey-common makes sure the dependency graph is different depending on which version of javac is first in classpath :face_palm: Creating the land of confusion that we all know and love:

And so on. Good grief.


Licensed under CC BY Creative Commons License ~ ✉ torstein.k.johansen @ gmail ~ 🐘 @skybert@hachyderm.io ~ 🐦 @torsteinkrause