[FIXED] Löschen Sie eine Systemeigenschaft maven.compiler.release/setzen Sie diese nicht mehr fest, sodass sie nicht mehr vorhanden ist

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.releaseauf 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 releaseEigenschaft 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)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like