来自拼图项目:
让开发人员更轻松地为 Java SE 和 EE 平台构建和维护库和大型应用程序。
我正在尝试了解 Jigsaw 项目是什么,到目前为止,Jigsaw 项目的目标似乎与我们使用 Maven(或 Gradle)依赖管理所做的有些重叠:
- 构建像 Maven 这样的工具是一种威胁吗?
- 或者我的理解是错误的,Jigsaw 项目将以某种方式补充这些构建工具?
来自拼图项目:
让开发人员更轻松地为 Java SE 和 EE 平台构建和维护库和大型应用程序。
我正在尝试了解 Jigsaw 项目是什么,到目前为止,Jigsaw 项目的目标似乎与我们使用 Maven(或 Gradle)依赖管理所做的有些重叠:
Jigsaw之后,public
将仅在 JAR 范围内公开。要查看 JAR 之外的类,必须将其导出。
Java 将强制模块化,因为任何模块间的交互都必须在module-info
文件中指定。
例如,如果您生成一个 WAR,它将几乎保持不变,但 WAR 中的所有 JAR 包都必须定义一个模块信息(或不定义它并被视为自动或未命名的模块)。
Maven有 2 个主要特性:依赖管理和构建:
总结:Maven 仍将负责构建,但必须学习如何使用 Jigsaw 模块进行编译和打包。
模块对构建工具没有任何威胁。模块补充了构建工具,因为构建工具在构建时构建工件及其版本的依赖关系图,而模块在构建时和运行时强制工件/模块(不包括版本)的依赖关系。
从模块系统的状态:
"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."