Tag: java模块

Kotlin 1.2.10和Java 9对自动模块有相反的规定吗?

我有一个使用Kotlin Gradle插件的Gradle项目。 我想建立一个Java 9模块,所以我的目录结构如下所示: src/main/java/ – module-info.java src/main/kotlin/ – Foo.kt – Bar.kt build.gradle … 我的build.gradle声明以下依赖项: dependencies { compile “org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.2.10” compile “org.jetbrains.kotlin:kotlin-reflect:1.2.10” compile “org.junit.jupiter:junit-jupiter-api:5.0.2” } 我在我的Kotlin源码( Foo.kt , Bar.kt ,…)中使用所有这些依赖关系。 一切工作hunky-dory,如果我写我的module-info.java像这样: module my.module { requires kotlin.stdlib; exports my.module.pkg; } 如果我在compileJava任务中使用这种技术将所有的编译时间依赖关系提供给javac 。 但是,如果我在compileJava任务(编译module-info.java )期间打开-Xlint:all的Java编译器,我会得到以下警告: /path/to/my.module/src/main/java/module-info.java:26: warning: requires directive for an automatic module requires kotlin.stdlib; ^ 所以在这里我们有Java编译器, javac抱怨kotlin.stdlib是一个自动模块,所以我不应该有一个kotlin.stdlib子句。 […]