java - 清除/取消设置系统属性 maven.compiler.release 以便它不再存在

标签 java maven maven-compiler-plugin system-properties

我有一个具有复杂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/

相关文章:

java - Spring Boot RequestMapping 不适用于 Linux Fedora 26

java - 使用 avro-maven-plugin 1.9.0 生成具有十进制数据类型的类

java - 如何使 maven-compiler-plugin 不隐藏错误源位置

java - 不覆盖接口(interface)默认实现时编译失败

java - 使用 "return this"时返回类是什么?

java - 如何使用 Swagger Core (springdoc-openapi) 生成 OpenAPI 任意类型?

java - 暂停和恢复计划任务

java - Java File 方法 "canWrite()"可以支持锁定吗?

java - OSGI捆绑异常,maven依赖问题

java maven-compiler-plugin :3. 1、javacTask : source release 1. 7 需要目标版本 1.7