PackagingCon

Challenges with Java in a hermetic world
2021-11-10 , Room 4

Nix and similar tools (Spack) promise a reproduciblity story for packages (from source or bitwise).
Specifically within Nix, several languages have successfully integrated into the ecosystem but some such as Java are oddly absent given their popularity.

In a search for how to better integrate Java into a Nix-centric workflow, we go over some current challenges with the fractured Java ecosystem and how the appeal of a federated artifact store has led to sharp edges.


  • Go over high level basics for what a good integration story into Nix would be for a language
  • Things that make Java particularly hard:
    • JARs are ZIP so inherently not reproducible.
    • Maven artifactories don't enforce a cryptographic hash. Different artifactories can have different content for the same version.
    • Fractured dependency management software (Gradle, Ivy, Ant, Maven)
    • Lack of lock file and version ranges (or SNAPSHOT) cause projects to drift over time

I'm a software engineer, father and wishful amateur surfer.
I have over a decade of experience writing software and am currently employed by Google.
My prior experience has largely centered around building public cloud infrastructure for AWS & Oracle.
I am deeply passionate about reproducibility, developer tooling & ergonomics.

https://fzakaria.com/
https://www.linkedin.com/in/fmzakari/