如何通过Gradle Kotlin DSL为Java编译器传递--add-exports参数并解决报错
问题修复方案
错误原因
你的配置存在两处引发报错的问题:
- 将
--add-exports选项和它的参数值合并为了同一个字符串,javac解析时会将整段内容识别为单个非法标记 - 字符串末尾多了冗余空格,进一步加剧了参数解析错误
正确配置(Gradle Kotlin DSL)
写法1:拆分参数传入(推荐,兼容性最好)
将选项和参数值作为两个独立元素传入参数列表:
tasks.withType<JavaCompile> { options.compilerArgs.addAll(listOf( "--add-exports", "java.rmi/sun.rmi.server=ALL-UNNAMED" )) }
写法2:单字符串拼接等号
如果要写为单个参数,需要用等号连接选项和值,且不能加多余空格:
tasks.withType<JavaCompile> { options.compilerArgs.add("--add-exports=java.rmi/sun.rmi.server=ALL-UNNAMED") }
验证
修改配置后重新执行gradle compileJava任务即可正常编译。
内容的提问来源于stack exchange,提问作者user51
相关产品推荐
相关产品推荐

