Kotlin,JPMS和Gradle多模块项目

时间:2020-03-18 12:11:36

标签: java gradle kotlin multi-module java-platform-module-system

我在Kotlin中使用Jigsaw JPMS有一个多模块Gradle project,除非每个模块我have

compileKotlin {
    ...
    destinationDir = compileJava.destinationDir
}

然后我得到(对于每个模块,在这种情况下为uno_awt):

IdeaProjects \ uno-sdk \ uno-awt \ src \ main \ java \ module-info.java:16:错误:程序包为空或不存在:uno.awt 出口uno.awt;

但是,destinationDir = compileJava.destinationDir会产生以下警告:

在此版本中使用了不推荐使用的Gradle功能,使其与Gradle 7.0不兼容。 使用“ --warning-mode all”来显示各个弃用警告。

因此,我使用--warning-mode all重新运行:

不建议使用默认重复策略复制或存档重复路径。计划在Gradle 7.0中将其删除

可以通过使用以下示例指定重复策略来解决:

jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE }

但是,ilya gorbunov并没有在他的示例here中重复该目录(他也says明确地表示不需要该目录)

所以,我的问题本质上是:

  • 为什么在我看来这是强制性的?

  • 这是很好的方法还是某种棘手的解决方法,并且有“正确的方法”来做到这一点?

规格:

  • kotlin 1.3.70
  • 6.2.2级
  • ojdk 11.05

0 个答案:

没有答案