Schließen Sie src / main / java vom Kompilieren mit dem maven-compiler-plugin aus
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
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>
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.