ジグソープロジェクト から:
Java SEおよびEEプラットフォームの両方で、開発者がライブラリと大規模アプリケーションを構築および保守しやすくします。
私はプロジェクトJigsawが何であるかを学ぼうとしていますが、これまではProject Jigsawの目標はMaven(またはGradle)依存関係管理を使用して行ったものと多少重複しているようです:
Jigsawの後、public
はJARスコープ内でのみパブリックになります。 JAR外のクラスを表示するには、エクスポートする必要があります。
モジュール間相互作用はmodule-info
ファイルで指定する必要があるため、Javaはモジュール化を強制します。
たとえば、WARを作成する場合、WARはほとんど変更されませんが、WAR内のすべてのJARパッケージはmodule-infoを定義する必要があります(または定義しないで、自動または名前のないモジュールとして扱われます)。
Mavenには、依存関係の管理と構築の2つの主要な機能があります。
結論として:Mavenは引き続きビルドを担当しますが、Jigsawモジュールを使用してコンパイルおよびパッケージ化する方法を学ぶ必要があります。
モジュールは、ツールを構築するための脅威ではありません。ビルドツールconstructビルド時にアーティファクトとそのバージョンの依存グラフを構築するため、モジュールはビルドツールを補完しますが、モジュールenforceビルド時および実行時のアーティファクト/モジュール(バージョンは含まれません)の依存関係。
モジュールシステムの状態 から:
"A module’s declaration does not include a version string, nor
constraints upon the version strings of the modules upon which it
depends. This is intentional: It is not a goal of the module system
to solve the version-selection problem, which is best left to build
tools and container applications."