如何将编译器参数传递给 java Compiler with kotlin dsl Gradle

How to pass compiler arguments to java Compiler with kotlin dsl Gradle

我想为 gradle 构建任务向 java 编译器添加参数 --add-exports java.rmi/sun.rmi.server=ALL-UNNAMED。我正在使用 gradle kotlin dsl。

下面是更新后的 JavaCompiler 任务。

tasks.withType<JavaCompile> {
    val compilerArgs = options.compilerArgs
    compilerArgs.add("--add-exports java.rmi/sun.rmi.server=ALL-UNNAMED ")
}

当我 运行 gradle compileJava 任务时,我遇到以下错误。

  • What went wrong: Execution failed for task ':compileJava'.

error: invalid flag: --add-exports java.rmi/sun.rmi.server=ALL-UNNAMED

  • 尝试: 运行 使用 --stacktrace 选项获取堆栈跟踪。 运行 使用 --info 或 --debug 选项以获得更多日志输出。 运行 使用 --scan 以获得完整的见解。

我该如何解决这个问题?

根据 javadocoptions.compilerArgs returns List<String>。所以你可以这样写:

tasks.withType<JavaCompile> {
    val compilerArgs = options.compilerArgs
    compilerArgs.addAll(listOf("--add-exports", "java.rmi/sun.rmi.server=ALL-UNNAMED"))
}

还要确保您有 Java 9+。