С момента появления Java модулей в Java 9 прошло уже достаточно времени, но какой-то серьёзной заинтересованности в их использовании не заметно. И действительно, кому нужны Java модули без разрешения версий? Strong encapsulation - конечно хорошо, но лишь ради этого переводить проект на Java модули или модулизировать новый проект как-то неоправданно. Старый добрый Classpath прекрасно работает и так.
Транзитивные зависимости в Maven, Gradle и в прочих SBT могут приводить к конфликтам версий только из-за невозможности разрешить их на уровне Classpath. В итоге Maven, Gradle и компания просто оставляют какую-то одну версию, в надежде, что всё будет работать и так. А ведь они могли бы оставлять все версии транзитивных зависимостей, которые изолированно использовались бы другими зависимостями на уровне Java модулей.
https://www.youtube.com/watch?v=hEnvRXNyDgI&t=2042s
Кто из присутствующих использует свои Java модули в продакшене?
Дополнение:
Вот уже начались пляски с бубнами вокруг разрешения версий модулей в виде Jigsaw Layers:
https://www.youtube.com/watch?v=KVdZyj7_KVM
Презентация этого доклада:
https://downloads.ctfassets.net/oxjq45e8ilak/65DDLtkCvCIIUE0AouKYwQ/c773104e9...
Демонстрационный проект Никиты Липского на GitHub-е:
https://github.com/pjBooms/Jigsaw-Layers-Example
Кстати, у меня не получилось запустить этот код так, чтобы он печатал две строки одновременно. Печатает лишь одну.