escludere src / main / java dalla compilazione con maven-compiler-plugin

Sep 03 2020

Qualcuno sa come rimuovere una radice di origine da maven-compiler-plugin?

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

Perché genero sorgenti con lombok-maven-plugin da C: \ Workspace \ Dev01 \ Internet_Login \ src \ main \ java ma il plugin maven-compiler usa entrambe le radici sorgente e ottengo un errore di compilazione.

Dopo la compilazione, uso Aspectj quindi devo farlo in questo modo, perché Lombok e Aspectj sono "incompatibili".

Qualcuno ha una soluzione.

MODIFICARE :

Ho una soluzione. Basta definire sourceDirectory in build e il compilatore utilizzerà questa directory.

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

Grazie

Risposte

Seeker Sep 03 2020 at 13:42

hai provato con le esclusioni?

<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

Come suggerito da Chrylis, dovresti inserire qualsiasi classe con annotazioni Lombok src/main/lombokquando usi quel plugin. Questo è chiaramente documentato nella sua pagina di utilizzo .

Esiste anche un progetto di esempio in cui è possibile vedere come vengono inserite semplici classi Java senza annotazioni Lombok src/main/javae come destinazione Lombok src/main/lombok.

Segui le istruzioni e dovresti stare bene per quanto riguarda il plugin Maven Compiler. Per quanto riguarda AspectJ, dipende da come vuoi intrecciare i tuoi aspetti (tempo di compilazione, tessitura binaria, tempo di caricamento) e se gli aspetti risiedono nello stesso o in un altro modulo.