2017-04-04 41 views
10

module declaration定义了模块的依赖关系。如果我使用Maven作为构建工具,这是多余的,因为pom.xml已经包含这些(和更多)信息。基于此,Maven无法为我生成module-info.javaCan Maven是否可以生成模块声明

+2

我不认为它可以,原因很简单:在单个依赖项中,我已经可以拥有多个Java模块(它们本身不是依赖项),那么Maven如何可能拥有这些信息? – john16384

+3

模块声明不是多余的...... pom文件中“exports ...”的等效含义是什么?此外''需要java.sql' Maven应该如何知道这个?模块名称怎么样?基于应该猜到什么? artifactId的?无法正常工作....我推荐阅读关于Jigsaw关键字的Maven DEV列表...除此之外,传递依赖关系还有哪些? – khmarbaise

回答

6

人们可能会认为,大多数依赖关系确实也是必需的模块。但是,需求也可以指向在pom.xml中未指定的JDK/JRE模块。所以是的,如果你只看依赖关系,可能大部分都可以转化为所需的模块引用。

但是一个模块描述符包含更多的信息,这些信息都是基于开发人员做出的决定。 我写了关于它的an article,它详细描述了为什么它不可能完全生成这个文件。

+2

但可能会产生某种默认或最小模块声明。所有需要的附加信息(由开发人员制作的decaries)可以通过pom提供(配置在插件中)。有了这个,pom仍然是唯一需要维护的配置文件?! 还有一些插件可以生成bnd文件,清单文件或web.xml文件,其中包含pom提供的信息。 – dermoritz

+2

事实上,'jdeps'(在'jdk-9/bin'中)可以根据编译后的代码生成一个初始描述符。但它不能成为生命周期的一部分,因为它必须手工调整。 –

相关问题