我有一个具有复杂build设置的项目(父 POM 与父 POM),因此我的编译器插件碰巧使用 maven.compiler.release=8
执行。
这会阻止我将源/目标设置为 Java 11,并且我无法将发布设置为 11,因为我需要指定一些 --add-exports
。
有没有办法删除配置文件中的系统属性,这样它就不会出现并且我的源/目标开关可以工作?我能想到的最好的方法是将 maven.compiler.release
设置为空值,但它不适用于编译器插件。
如何清除配置文件中的系统属性?或者,有没有一种方法可以追踪最初实际设置它的人?
最佳答案
我遇到了类似的问题。以下是如何从父 POM 中删除 release
属性并使用 --add-exports
。
像这样使用 combine.self="override"
属性
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<release combine.self="override"/>
<compilerArgs>
<arg>--add-exports</arg>
<arg>jdk.compiler/com.sun.tools.javac.api=ALL-NNAMED</arg>
</compilerArgs>
...
等等,瞧!
关于java - 清除/取消设置系统属性 maven.compiler.release 以便它不再存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71019097/