使 Eclipse 与 JPMS 和 Maven 良好配合
Making Eclipse play well with JPMS and Maven
给定一个在 Eclipse 中从原型 maven-archetype-quickstart 创建的 Maven 项目(junit 升级到 5.5.2,具有 JPMS 支持),如何将它模块化为一个 JPMS 项目并且在 Eclipse 中仍然表现良好?
当我尝试这样做时,我首先在 java
文件夹中创建了模块文件夹,并将包结构移入其中。项目结构如下所示:
jpms (project folder) -> src/main/java/org.myorg.mymodule/org/myorg/myproject/jpmspackage
。到目前为止,一切都很好。该项目在控制台中使用 mvn clean install
构建并执行单元测试。然后将模块文件夹(包含模块-info.java 文件+包)设置为源文件夹(Eclipse 中的"use as source folder")。
在 Eclipse 中执行 Maven 构建现在失败并显示
Cannot nest'jpms/src/main/java/org.myorg.mymodule' inside 'jpms/src/main/java'. To enable the nesting exclude 'org.myorg.mymodule/' from 'jpms/src/main/java'
如何设置源文件夹或构建路径来安抚Eclipse?
模块描述符:
module org.myorg.mymodule {
requires org.junit.jupiter.api;
}
更新了 JUnit 依赖项(该项目最初是使用 JUnit 3-something 生成的)
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.5.2</version>
</dependency>
版本:Eclipse 2019-09,Java12,Maven 3.6.2
保持项目结构,只需将module-info.java
文件添加到默认包:
- 右键单击项目文件夹并选择Configure > Create module-info.java
请注意,每个模块都需要一个单独的项目,因为在一个项目中有多个模块(具有不同的依赖关系)没有意义(如果需要,请改用嵌套项目)。
另请参阅此 Java modules Maven example。
给定一个在 Eclipse 中从原型 maven-archetype-quickstart 创建的 Maven 项目(junit 升级到 5.5.2,具有 JPMS 支持),如何将它模块化为一个 JPMS 项目并且在 Eclipse 中仍然表现良好?
当我尝试这样做时,我首先在 java
文件夹中创建了模块文件夹,并将包结构移入其中。项目结构如下所示:
jpms (project folder) -> src/main/java/org.myorg.mymodule/org/myorg/myproject/jpmspackage
。到目前为止,一切都很好。该项目在控制台中使用 mvn clean install
构建并执行单元测试。然后将模块文件夹(包含模块-info.java 文件+包)设置为源文件夹(Eclipse 中的"use as source folder")。
在 Eclipse 中执行 Maven 构建现在失败并显示
Cannot nest'jpms/src/main/java/org.myorg.mymodule' inside 'jpms/src/main/java'. To enable the nesting exclude 'org.myorg.mymodule/' from 'jpms/src/main/java'
如何设置源文件夹或构建路径来安抚Eclipse?
模块描述符:
module org.myorg.mymodule {
requires org.junit.jupiter.api;
}
更新了 JUnit 依赖项(该项目最初是使用 JUnit 3-something 生成的)
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.5.2</version>
</dependency>
版本:Eclipse 2019-09,Java12,Maven 3.6.2
保持项目结构,只需将module-info.java
文件添加到默认包:
- 右键单击项目文件夹并选择Configure > Create module-info.java
请注意,每个模块都需要一个单独的项目,因为在一个项目中有多个模块(具有不同的依赖关系)没有意义(如果需要,请改用嵌套项目)。
另请参阅此 Java modules Maven example。