小编Jun*_*Heo的帖子

当Java 9模块系统集成到Maven中时,如何处理自动模块

我已经练习了java 9模块系统与Maven项目的集成.它似乎工作得很好但我担心在java 9之前编译的maven模块的向后兼容性.

为了向后兼容,JPMS(Java平台模块系统)具有自动模块概念.在JPMS中,没有module-info.java的Jar文件被视为自动模块,其他java模块可以使用其文件名作为模块名称来使用此jar文件.

在与maven项目集成的情况下,我认为需要额外支持JPMS向后兼容性.首先,基本jar文件和maven jar文件结构不一样.第二,maven jar文件命名与规则不兼容可以兼容JPMS模块命名规则.见下面的例子.

<artifactId>previous-version-module</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,我们已经使用了previous-version-module-0.0.1-SNAPSHOT,并希望在新的java 9 maven项目中使用这个模块.

module new.module{
  requires previous-version-module-0.0.1-SNAPSHOT
}
Run Code Online (Sandbox Code Playgroud)

但它发生编译错误或IDEA工具抛出错误.

我想知道如何在java 9和maven集成项目中使用java 9之前编译的maven jar文件.我搜索了一些额外的模块定义规则或maven插件,我找不到任何解决方案.

谢谢.

maven java-9

5
推荐指数
1
解决办法
1561
查看次数

标签 统计

java-9 ×1

maven ×1