让开发人员更容易构建和维护库和 适用于Java SE和EE平台的大型应用程序。
我试图了解Jigsaw是什么项目,到目前为止,Project Jigsaw的目标似乎与我们使用Maven(或Gradle)依赖关系管理所做的有些重叠:
答案 0 :(得分:33)
在 Jigsaw 之后,public
将仅在JAR范围内公开。要查看JAR之外的类,必须将其导出。
Java将强制进行模块化,因为必须在module-info
文件中指定任何模块间交互。
例如,如果生成WAR,它将保持几乎不变,但WAR中的所有JAR包必须定义module-info(或者不定义它,并将其视为自动或未命名的模块)。
Maven 有两个主要功能:依赖关系管理和构建:
总结:Maven仍将负责构建,但必须学习如何使用Jigsaw模块进行编译和打包。
答案 1 :(得分:8)
模块对构建工具不构成任何威胁。模块补充构建工具,因为构建工具构建构建时的工件及其版本的依赖关系图,而模块强制构建时的工件/模块(不包括版本)的依赖关系运行。
"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."