delombok
目标旨在将 java代码src/main/lombok
从target/generated-source/delombok
. 然后,将在其中找到的其他 java 代码src/main/java
组合起来target/generated-source/delombok
以生成组合的 java 类。
将 delombok 视为源代码生成器会有所帮助。
那么如何才能得到你真正想要的呢? (请注意,Maven 有一个addCompileSourceRoot方法,但没有相应的removeCompileSourceRoot。)想象一下以下hack:
- 覆盖默认值
<build><sourceDirectory>
fromsrc/main/java
是${project.build.directory}/generated-sources/delombok
。
- 覆盖默认的 delombok
sourceDirectory
从src/main/lombok
to src/main/java
,并禁用addOutputDirectory
。
基本上,您将使用src/main/java
,但 Maven 会忽略它而使用target/generated-sources/delombok
. Lombok 插件将转换src/main/java
为target/generated-sources/delombok
.
<build>
<sourceDirectory>${project.build.directory}/generated-sources/delombok</sourceDirectory>
<plugins>
<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.16.6.1</version>
<executions>
<execution>
<id>delombok</id>
<phase>generate-sources</phase>
<goals>
<goal>delombok</goal>
</goals>
<configuration>
<addOutputDirectory>false</addOutputDirectory>
<sourceDirectory>src/main/java</sourceDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
请注意,您不需要破解其他插件,例如maven-jar-plugin
or maven-javadoc-plugin
,因为它们应该尊重sourceDirectory
.
使用此 hack 需要您自担风险。 (我的猜测是这可能会使您的 IDE 和其他一些开发人员感到困惑。)