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

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>

THX

回答

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クラス平野ロンボク注釈なしで見ることができるsrc/main/javaとロンボクの対象ではsrc/main/lombok。

指示に従うだけで、Mavenコンパイラプラグインに関して問題がないはずです。AspectJに関しては、アスペクトをどのようにウィービングするか(コンパイル時、バイナリウィービング、ロード時間)、およびアスペクトが同じモジュールにあるか別のモジュールにあるかによって異なります。