java - 让 Eclipse 与 JPMS 和 Maven 良好配合

标签 java eclipse maven java-module

给定一个在 Eclipse 中从原型(prototype) 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 进行构建,并执行单元测试。然后将模块文件夹(包含 module-info.java 文件 + 包)设置为源文件夹(在 Eclipse 中“用作源文件夹”)。

在 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、Java 12、Maven 3.6.2

最佳答案

保留项目结构,只需module-info.java文件添加到默认包中:

  1. 右键单击项目文件夹并选择配置 > 创建 module-info.java

请注意,对于每个模块都需要一个单独的项目,因为在一个项目中拥有多个模块(具有不同的依赖项)是没有意义的(如果需要,请改用嵌套项目)。

另请参阅 Java modules Maven example .

关于java - 让 Eclipse 与 JPMS 和 Maven 良好配合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58631488/

相关文章:

java - 如何向数据库表中添加两个表组合的条目

java - 互联网连接失败

java - Hibernate连接3个表

eclipse - Eclipse 编译器或 javac 中的错误?

java - 从 xsd 为特定 xml 创建 JAVA 对象时获取 UnmarshalException

java - HtmlUnitDriver 似乎缺少 HTTP 组件?

java - Java EE 编程中使用弱引用和软引用的地方

eclipse - 尝试让 tomcat 7 与 eclipse 3.6.1 一起工作

java - 复制 Android 文件时找不到文件异常

java - 如何自动将 jar 包含在 list 文件中