исключить src / main / java из компиляции с помощью maven-compiler-plugin
Кто-нибудь знает, как удалить исходные корни из 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>
Спасибо
Ответы
вы пробовали с исключениями?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<excludes>
<exclude>src/main/java/</exclude>
</excludes>
</configuration>
</plugin>
Как предложил Хрилис, src/main/lombokпри использовании этого плагина вам следует размещать любые классы с аннотациями Lombok . Это четко задокументировано на странице использования .
Существует также образец проекта, в котором вы можете увидеть, как простые классы Java без аннотаций Lombok размещаются в, src/main/javaа цели Lombok - в src/main/lombok.
Просто следуйте инструкциям, и все будет в порядке с плагином Maven Compiler. Что касается AspectJ, это зависит от того, как вы хотите вплетать свои аспекты (время компиляции, двоичное переплетение, время загрузки) и находятся ли аспекты в том же или другом модуле.