使用Maven-compiler-plugin从编译中排除src / main / java

问题描述

是否有人知道如何从maven-compiler-plugin中删除Source根目录?

[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同时使用了Source根目录,我得到了编译错误

编译后,我使用Aspectj,所以我需要这样做,因为Lombok和Aspectj是“不兼容的”。

有人解决吗?

编辑:

我有一个解决方案。只需在build中定义sourceDirectory,编译器就会使用该目录。

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

Thx

解决方法

您尝试过排除吗?

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
   <configuration>
        <excludes>
            <exclude>src/main/java/</exclude>
        </excludes>                  
    </configuration>
</plugin>
,

如Chrylis所建议,使用该插件时,应将带有Lombok注释的所有类放入src/main/lombok中。明确记录在其usage page中。

还有一个sample project,您可以看到如何在src/main/java中放置不带Lombok批注的普通Java类,并在src/main/lombok中放置Lombok目标。

只需按照说明进行操作,就可以使用Maven Compiler插件了。至于AspectJ,这取决于您要如何编织方面(编译时,二进制编织,加载时间),以及方面是驻留在相同模块中还是在另一个模块中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...