当前位置: 首页 > 知识库问答 >
问题:

Maven可以生成模块声明吗?

宇文峰
2023-03-14

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


共有2个答案

匡祖鹤
2023-03-14

据我所知,bnd-maven-plugin可以根据配置的依赖关系生成模块信息.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

马银龙
2023-03-14
匿名用户

人们可能会认为大多数依赖项也确实是必需的模块。但是,需求也可以指向JDK/JRE的模块,这些模块在< code>pom.xml中没有指定。所以,是的,如果你只看依赖关系,可能大部分都可以被转换成一个必需的模块引用。

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

 类似资料:
  • use 声明可以将一个完整的路径绑定到一个新的名字,从而更容易访问。 // 将 `deeply::nested::function` 路径绑定到 `other_function`。 use deeply::nested::function as other_function; fn function() { println!("called `function()`"); } mod de

  • 我们正在迁移到java 11和作为java 9开始使用modules-info.java.我想知道是否有办法自动生成modules-info.java基于现有的项目?

  • 我正在创建一个环境模块来补充缺失的打字。我可以创建打字。d、 ts这为环境模块提供了正确的类型。 由于某种原因,当我这样做时,环境模块的import语句中断。 typings.d.ts 在上面的例子中,我想从另一个库中提供适当的返回类型。

  • 情况是,我有两个结构相同的Maven多模块项目: 当我构建项目1时,我看到首先构建的是parent(顺序是parent->module1->module2)。然而,对于项目2,最终生成父级(顺序为module1->module2->parent)。为什么两个项目的建造订单不同?此外,如何手动控制生成顺序? 更新1: 两个父项目都是简单的POM项目,没有源代码,所以我无法按照依赖关系图解释构建顺序。

  • 问题内容: 我们有一个带有 Java 文件的 Maven 项目(打包为JAR)。最近将一个新的 Java 源文件添加到该项目中。添加Java文件的路径与其包声明不匹配。不出所料,Eclipse在类中显示了不匹配的错误。但是,Maven可以很好地构建项目。在生成的JAR文件中,.class文件位于包声明所指示的路径中。我们试图将Java源文件移动到其他不正确的文件夹中(即与包声明不同),但是每次Ma

  • 这样并没有在dist目录下生成一个types文件夹,而是在每个模块下都生成了一个types文件夹,造成声明文件重复,请问如何设置才能只在dist文件夹下生成一个声明文件呢?