java - 如何从 Maven 依赖项构建 java 9 依赖项

标签 java maven java-9 modularity module-info

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/

相关文章:

lambda - 使用 Lambda 函数使用供应商提供的所有对象

java-9 - Payara5 - Java 9 上的 payaradomain

java - 有没有办法使用 IntelliJ 重构 Set 初始化以使用 Set.of() ?

java - JSP - “<% … %>” VS “<%= … %>” 有什么区别

java - 如何从 XML 文件中删除多余的空行?

java - 如何使用 deploy :deploy-file 使用 jar 部署源文件

java - Maven jar 插件 - SNAPSHOT 依赖项的错误类路径条目

java - MQTT/Camel/自定义 header 参数

Java字符: Is there a value for "Not A Character"?

java - OWASP ESAPI 文件在 Maven 项目 (Web) 中的位置