maven-compiler-plugin으로 컴파일에서 src / main / java 제외

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

C : \ Workspace \ Dev01 \ Internet_Login \ src \ main \ java 에서 lombok-maven-plugin으로 소스를 생성하기 때문에 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

Chrylis가 제안했듯이 src/main/lombok해당 플러그인 을 사용할 때 Lombok 주석이있는 클래스를 배치해야합니다 . 이것은 그것의 사용 페이지 에 명확하게 문서화되어 있습니다 .

또한 롬복 주석이없는 일반 Java 클래스가 .NET에 배치되고 Lombok 대상 이 배치되는 방법을 볼 수 있는 샘플 프로젝트 도 있습니다 .src/main/javasrc/main/lombok

지침을 따르고 Maven Compiler 플러그인과 관련하여 괜찮을 것입니다. AspectJ의 경우 aspect를 짜는 방법 (컴파일 시간, 바이너리 위빙,로드 시간)과 aspect가 동일한 모듈에 있는지 또는 다른 모듈에 있는지 여부에 따라 다릅니다.