Ausgabe
Ich habe ein Projekt mit kompliziertem Build-Setup (übergeordnete POMs mit übergeordneten POMs) und so kommt es vor, dass mein Compiler-Plugin mit maven.compiler.release=8
.
Dies hindert mich daran, Quelle/Ziel auf Java 11 festzulegen, und ich kann Release nicht auf 11 festlegen, da ich einige angeben muss --add-exports
.
Gibt es eine Möglichkeit, eine Systemeigenschaft in einem Profil zu entfernen, sodass sie nicht angezeigt wird und meine Quelle/Ziel-Schalter funktionieren würden? Das Beste, was mir einfällt, ist das Setzen maven.compiler.release
auf einen leeren Wert, aber es funktioniert nicht mit dem Compiler-Plugin.
Wie lösche ich die Systemeigenschaft in einem Profil? Gibt es alternativ eine Möglichkeit nachzuvollziehen, wer es tatsächlich überhaupt eingestellt hat?
Lösung
Ich hatte ein ähnliches Problem. So löschen Sie eine release
Eigenschaft aus dem übergeordneten POM und verwenden --add-exports
.
Verwenden Sie das combine.self="override"
Attribut wie folgt
<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>
...
et, voila!
Beantwortet von – ocarlsen
Antwort geprüft von – Terry (FixError Volunteer)