Java9 引入了类似于 OSGI 和 Maven Dependecies 的强大模块化性。
是否有一个 Maven 插件能够构建 java 9 依赖项并检查 Maven 依赖项?
例如,来自
<groupId>com.mycompany.app</groupId>
<artifactId>my-module</artifactId>
....
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.3-jre</version>
</dependency>
至
module my-module{
requires com.google.guava;
exports com.mycompany.app;
}
我读过这篇文章,但它不是那么有用 - How to express dependency in maven on java ee features for transition to Java 9?
最佳答案
为了准确回答这个问题,问题中引用的 module-info
中的模块名称(例如 com.google.guava
)被称为 自动模块名称。一般来说,如果您的应用程序已经有一个包含 Java 8 的 jar,那么我们可以使用上述 Maven 配置的 yourApp.jar
。您可以使用 jdeps
tool如:-
jdeps --generate-module-info <output-dir> /path/to/yourApp.jar
这将为您的 jar 生成 module-info.java
,您可以在将同一项目迁移到 Java 9 时进一步使用它。
当前对应的插件名称为maven-jdeps-plugin
似乎不支持这项任务。虽然它仍然Work in Progress如果所有者认为在 Maven 工作流程中引入有效,这可能会起作用。
编辑 :: 如果您发现该任务有用,可以通过 MJDEPS tracker. 请求该功能。
关于java - 如何从 Maven 依赖项构建 java 9 依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47080660/