исключить src / main / java из компиляции с помощью maven-compiler-plugin

Sep 03 2020

Кто-нибудь знает, как удалить исходные корни из 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

Поскольку я генерирую исходный код с помощью lombok-maven-plugin из C: \ Workspace \ Dev01 \ Internet_Login \ src \ main \ java, но maven-compiler-plugin использует оба корня исходного кода, и я получаю ошибку компиляции.

После компиляции я использую Aspectj, поэтому мне нужно сделать это таким образом, потому что Lombok и Aspectj «несовместимы».

У кого-нибудь есть решение.

РЕДАКТИРОВАТЬ :

У меня есть решение. Просто определите sourceDirectory в сборке, и компилятор будет использовать этот каталог.

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

Спасибо

Ответы

Seeker Sep 03 2020 at 13:42

вы пробовали с исключениями?

<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

Как предложил Хрилис, src/main/lombokпри использовании этого плагина вам следует размещать любые классы с аннотациями Lombok . Это четко задокументировано на странице использования .

Существует также образец проекта, в котором вы можете увидеть, как простые классы Java без аннотаций Lombok размещаются в, src/main/javaа цели Lombok - в src/main/lombok.

Просто следуйте инструкциям, и все будет в порядке с плагином Maven Compiler. Что касается AspectJ, это зависит от того, как вы хотите вплетать свои аспекты (время компиляции, двоичное переплетение, время загрузки) и находятся ли аспекты в том же или другом модуле.