NixCon 2020: Online Edition

Nix in the Java ecosystem
2020-10-16, 17:00–17:25, Main Stream

Java is one of the most popular languages (ranked 2nd by PYPL [1]), however there is a fragmented and incomplete solution when it comes to tooling available by NixPkgs.

This talk will go over the current state of affairs (what's available today), what's so difficult about Java compared to other supported languages in NixPkg and a proposed solution (mvn2nix [2]) aimed at filling the gap.


submission outline:
- discuss how other languages integrate with Nix; mainly by creating fixed-output derivations for their dependencies which are fetched to construct a build environment.
- communicate that Java's main build systems (Maven & Gradle) go beyond much more than simple dependency retrieval; generate sources or even bytecode weaving/
- touch on Maven specifically; whose initial release was in 2004. The tool is immensly complex and it is non-trivial to determine all the necessary dependencies.
- go over the "double invocation" pattern as a workable solution
- announce / release mvn2nix as a forward looking solution