如何在 Maven 编译中添加“--add-exports”编译器指令

h3x*_*eam 3 maven java-platform-module-system kotlin java-11

使用 Java 11 编译时出现以下错误。

Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.xni.parser'
Symbol is declared in module 'java.base' which does not export package 'sun.net.www.protocol.http'
Symbol is declared in module 'java.base' which does not export package 'sun.net.www.protocol.file'
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.util'
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.xni.parser'
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.xni.parser'
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.xni.parser'
[...]
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.impl.dtd'
Run Code Online (Sandbox Code Playgroud)

我需要--add-exports为 Java 编译指定指令。我不知道如何将其添加到我的 Maven 构建编译 Kotlin 代码中。

另外,我不确定 的确切值--add-exports

这是我的pom.xml

Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.xni.parser'
Symbol is declared in module 'java.base' which does not export package 'sun.net.www.protocol.http'
Symbol is declared in module 'java.base' which does not export package 'sun.net.www.protocol.file'
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.util'
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.xni.parser'
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.xni.parser'
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.xni.parser'
[...]
Symbol is declared in module 'java.xml' which does not export package 'com.sun.org.apache.xerces.internal.impl.dtd'
Run Code Online (Sandbox Code Playgroud)

h3x*_*eam 5

解决方案是使用内部 API 在每个源文件的开头包含注释。

@file:Suppress("JAVA_MODULE_DOES_NOT_EXPORT_PACKAGE")
Run Code Online (Sandbox Code Playgroud)

这个注释是由于Kotlin 支持论坛上的这个帖子而找到的。