- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
给定一个在 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
文件添加到默认包中:
请注意,对于每个模块都需要一个单独的项目,因为在一个项目中拥有多个模块(具有不同的依赖项)是没有意义的(如果需要,请改用嵌套项目)。
另请参阅 Java modules Maven example .
关于java - 让 Eclipse 与 JPMS 和 Maven 良好配合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58631488/
我有一个非常基本的 JavaFX 应用程序,如果应用程序类不是主类,它可以完美运行: import javafx.application.Application; import javafx.fxml
我以为JPMS不支持模块版本。但是,当我执行 java --list-modules 时,我得到以下输出: java.activation@9 java.base@9 java.compiler@9
JPMS ServiceLoader 无法正常工作。 我正在尝试提供一个桌面程序作为可执行jar,带有默认服务,可以由个人用户重载。用户提供他们自己的服务类,并在命令行上提供他们的名字作为参数。 服务
在介绍 JPMS 服务时,Java 语言规范第 7.7.4 节指出“服务类型必须是类类型、接口(interface)类型或注解类型”。 我很难看到允许注释的意义。我的理解是,JPMS 的服务概念是我们
假设我们有 JPMS 模块 - A、B、C 等。A 定义了一些服务a.spi.SomeService 和所有模块都实现了此服务。例如,模块 B 具有此服务 b.spi.SomeServiceImpl
我正在尝试创建一个模块化的可执行 jar 文件,它可以使用 java -p -m 运行在 Java 9.0.1 上。 这在使用 jar cfe test.jar test.Main -C clas
如何列出所有模块的所有(!)JPMS 服务。我的意思是我需要当前运行 JVM 时可以使用的所有服务的列表。我在互联网上搜索过,但仍然找不到方法。 最佳答案 没有这样的命令,但你可以在命令行中组合一些东
Java 的包管理系统对我来说总是简单而有效。它被 JDK 本身大量使用。我们一直在用它来模仿命名空间和模块的概念。 Project Jigsaw(又名 Java Platform Module Sy
我有两个 JPMS 层: 带有 module A 的引导层由 ClassLoaders$AppClassLoader@4fca772d 加载 带有 module B 的子层提供 cervices 并由
我有一个 JPMS 框架,可以动态创建 JPMS 层并向其中添加模块。经过一些测试,在我看来,--add-opens JVM 参数仅适用于引导层,我的意思是应用程序启动时创建的层。 那么,问题是 -
我试图在我的 UML 类图上显示两个 JPMS 模块以及它们内部的包和类。问题是我无法理解使用什么元素来显示模块。请帮忙。 最佳答案 在 UML 中: 有包和组件。 包:见reference 1 Pa
我有一个包含包 com.temp 的模块,它具有服务的接口(interface)和实现 - ServiceInterface 和 ServiceImpl。我的模块信息中有: module temp {
我了解 Java 平台模块系统 (JPMS) 对大型应用程序的好处,但是否有任何理由将小型库或应用程序制作成(单个)模块?如果是这样,是Modular Jar Files实现此目的的最佳方法,还是首选
所以,6.4(终于)出来了,并且有 JPMS support 迫不及待地想试一试,我开始修改我们的一个项目以便使用它。 jjohannes 在他的 repo 之一上有一个 (kotlin) 示例 我试
在使用 Java 9 平台模块系统 (JPMS) 时,我找不到包含 javax.jms 包的模块。 Replacements for deprecated JPMS modules with Java
Here您可以找到以下有关自动模块的信息: The module system also scans META-INF/services and makes the automatic module
我正在使用带有 moduleplugin 的 Gradle (6.0.1)使用 JPMS modules 构建应用程序使用 JDK 13。 但是,即使使用 the application plugin
给定一个在 Eclipse 中从原型(prototype) maven-archetype-quickstart 创建的 Maven 项目(junit 升级到 5.5.2,支持 JPMS),如何将其模
Java 9 deprecated six modules that contain Java EE APIs他们是going to be removed很快: java.activation 与 j
我将 Java 14 与 Jetty 9.4 和 Weld-servlet-shaded-3.1 一起使用,但出现此异常: Caused by: java.lang.reflect.Inaccessi
我是一名优秀的程序员,十分优秀!