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.