Schließen Sie src / main / java vom Kompilieren mit dem maven-compiler-plugin aus

Sep 03 2020

Ist jemand bekannt, wie man Quellwurzeln aus dem Maven-Compiler-Plugin entfernt?

[DEBUG] Source roots:
[DEBUG]  C:\Workspace\Dev01\Internet_Login\src\main\java
[DEBUG]  C:\Workspace\Dev01\Internet_Login\target\generated-sources\delombok

Da ich eine Quelle mit dem Lombok-Maven-Plugin aus C: \ Workspace \ Dev01 \ Internet_Login \ src \ main \ java generiere, aber das Maven-Compiler-Plugin beide Quellwurzeln verwendet und ich einen Kompilierungsfehler erhalte.

Nach dem Kompilieren verwende ich Aspectj, daher muss ich dies auf diese Weise tun, da Lombok und Aspectj "inkompatibel" sind.

Hat jemand eine Lösung.

EDIT:

Ich habe eine Lösung. Definieren Sie einfach das Quellverzeichnis im Build und der Compiler wird dieses Verzeichnis verwenden.

<build>
    <sourceDirectory>${project.build.directory}/generated-sources/delombok</sourceDirectory>
    ...
</build>

Danke

Antworten

Seeker Sep 03 2020 at 13:42

Hast du es mit Ausschlüssen versucht?

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
   <configuration>
        <excludes>
            <exclude>src/main/java/</exclude>
        </excludes>                  
    </configuration>
</plugin>
kriegaex Sep 05 2020 at 02:24

Wie Chrylis vorgeschlagen hat, sollten Sie src/main/lombokbei Verwendung dieses Plugins Klassen mit Lombok-Anmerkungen einfügen . Dies ist auf seiner Verwendungsseite klar dokumentiert .

Es gibt auch ein Beispielprojekt, in dem Sie sehen können, wie einfache Java-Klassen ohne Lombok-Annotationen src/main/javaund die Lombok-Ziele in platziert werden src/main/lombok.

Befolgen Sie einfach die Anweisungen und Sie sollten in Bezug auf das Maven Compiler-Plugin in Ordnung sein. Was AspectJ betrifft, hängt es davon ab, wie Sie Ihre Aspekte weben möchten (Kompilierungszeit, binäres Weben, Ladezeit) und ob sich die Aspekte im selben oder einem anderen Modul befinden.