I've been moving all of the projects I still maintain to Java 9
modules. In order
to do this, however, I've needed to assist third party projects upon
which I have dependencies to either modularize their projects or
publish Automatic-Module-Name
entries in their jar
manifests. If
you try to specify a dependency on a project that either hasn't been
modularized or hasn't published an Automatic-Module-Name
entry,
you'll see this when building with Maven:
[WARNING] ******************************************************************************************************************** [WARNING] * Required filename-based automodules detected. Please don't publish this project to a public artifact repository! * [WARNING] ********************************************************************************************************************
The reasons for this are documented on Stephen Colebourne's blog.
Here's a table of all of the third party projects upon which I depend, and an indication of the current state of modularization (I'll try to keep this updated as projects are updated):
Project | State | Updated |
---|---|---|
fastutil | Considering | 2018-02-07 |
jcpp | Considering | 2018-02-08 |
ed25519-java | Considering | 2018-02-09 |
LWJGL | Fully Modularized | 2018-02-07 |
Dyn4j | Fully Modularized | 2018-02-07 |
protobuf | Ignored? | 2018-02-07 |
antlr | In Progress | 2018-02-11 |
autovalue | In Progress | 2018-02-07 |
rome | In Progress | 2018-02-07 |
JGraphT | Automatic Module Names (Full modularization in progress) | 2018-02-11 |
Vavr | Automatic Module Names | 2018-02-07 |
commonmark-java | Automatic Module Names | 2018-02-07 |
javapoet | Automatic Module Names | 2018-02-07 |
xom | Unclear | 2018-02-07 |
Generally, if a project isn't planning to either modularize or publish automatic module names, then I'm looking for a replacement for that project.