模块声明定义了模块的依赖关系。如果我使用Maven作为构建工具,这是多余的,因为pom.xml已经包含了这些(以及更多)信息。基于此,Maven不能为我生成module-info.java吗?
pom.xml
module-info.java
yduiuuwa1#
人们可能会认为大多数依赖项确实也是必需的模块。然而,需求也可以指向JDK/JRE的模块,这些模块在pom.xml中没有指定。所以是的,如果你只看依赖项,可能大多数都可以转换为必需的模块引用。但是模块描述符包含更多的信息,这些信息都是基于开发人员的决定。我已经写了an article,详细描述了为什么不可能完全生成这个文件。
nfeuvbwi2#
据我所知,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
bnd-maven-plugin
module-info.class
maven-bundle-plugin
2条答案
按热度按时间yduiuuwa1#
人们可能会认为大多数依赖项确实也是必需的模块。然而,需求也可以指向JDK/JRE的模块,这些模块在
pom.xml
中没有指定。所以是的,如果你只看依赖项,可能大多数都可以转换为必需的模块引用。但是模块描述符包含更多的信息,这些信息都是基于开发人员的决定。我已经写了an article,详细描述了为什么不可能完全生成这个文件。
nfeuvbwi2#
据我所知,
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