Maven 可以生成模块声明吗?
Can Maven generate the module declaration?
module declaration 定义了模块的依赖关系等。如果我使用 Maven 作为构建工具,这是多余的,因为 pom.xml
已经包含这些(以及更多)信息。基于此,Maven 不能为我生成 module-info.java
吗?
人们可能认为大多数依赖项确实也是必需的模块。但是,需求也可以指向 JDK/JRE 的模块,这些模块没有在 pom.xml
中指定。所以是的,如果你只看依赖项,可能其中大部分都可以转换为所需的模块引用。
但是模块描述符包含的信息要多得多,这些信息都是基于开发人员做出的决定。
我已经写了 an article 关于它,其中详细描述了为什么无法完全生成此文件。
据我所知,bnd-maven-plugin
可以根据配置的依赖生成module-info.class
。如果你使用maven-bundle-plugin
,你需要手动指定bndlib的版本,因为最新版本的maven-bundle-plugin(5.1.3)仍然使用5.x版本的bndlib,并且bndlib 需要 6.x 来支持 jpms。
文档:https://bnd.bndtools.org/releases/6.1.0/chapters/330-jpms.html
module declaration 定义了模块的依赖关系等。如果我使用 Maven 作为构建工具,这是多余的,因为 pom.xml
已经包含这些(以及更多)信息。基于此,Maven 不能为我生成 module-info.java
吗?
人们可能认为大多数依赖项确实也是必需的模块。但是,需求也可以指向 JDK/JRE 的模块,这些模块没有在 pom.xml
中指定。所以是的,如果你只看依赖项,可能其中大部分都可以转换为所需的模块引用。
但是模块描述符包含的信息要多得多,这些信息都是基于开发人员做出的决定。 我已经写了 an article 关于它,其中详细描述了为什么无法完全生成此文件。
据我所知,bnd-maven-plugin
可以根据配置的依赖生成module-info.class
。如果你使用maven-bundle-plugin
,你需要手动指定bndlib的版本,因为最新版本的maven-bundle-plugin(5.1.3)仍然使用5.x版本的bndlib,并且bndlib 需要 6.x 来支持 jpms。
文档:https://bnd.bndtools.org/releases/6.1.0/chapters/330-jpms.html