Java9 引入了Multi-Release JARs。
假设我有使用 java8 的多模块 Gradle 项目:
project-root
settings.gradle
build.gradle
/module1
/src
... (common maven structure)
/module2
/module3
这是 Gradle 中常见的多模块项目。假设我需要 MR-Jar 用于module1
.
我无法添加module1-java9
目标 Java9,因为基础是 8 - 到目前为止,我的 Gradle 和 IntelliJ IDEA 都在抱怨。Gradle 是用 java8 编译的,但是我需要为模块启用 java9 运行时(不知道如何);在 IntelliJ IDEA 中,我可以为模块设置 java9 运行时,但每次重新加载 gradle config 时它都会被覆盖。
此外,即使我以某种方式添加它,我也需要指示module1
1)构建第二个和 2)包含module1-java9
. 这是这种情况的示意图:
project-root
settings.gradle
build.gradle
/module1
/module1-java9 (added java9 module)
/module2
...
或者,这可以在 下完成module1
,具有不同的来源:src
和src-java9
。但我怀疑这是否会被接受。这是一张图:
project-root
settings.gradle
build.gradle
/module1
/src
/src-java9 (added java9 source folder)
/module2
/module3
到目前为止,我只看到这module1-java9
是一个单独的项目(不是模块),它module1
只是在那里调用 gradle 并获取输出。是的,这是 gradle 调用 gradle :)))
有没有对开发人员友好的方式来做到这一点?