gpt4 book ai didi

java - 如何在 Maven 编译期间忽略 Java 源目录?

转载 作者:IT老高 更新时间:2023-10-28 20:46:35 30 4
gpt4 key购买 nike

我正在尝试使用 Lombok Maven Plugin以确保在使用 Lombok 时正确创建 Javadocs .

Lombok Maven 在编译之前引入了一个新的代码生成目标。在我的配置中,我的 sourceDirectory(带有 Lombok 注释的 Java,src/main/java)被处理以在 target/generated- 中创建 Java(没有 Lombok 注释)来源/delombok.

但是,sourceDirectory 中的每个文件现在在 target/generated-sources/delombok 中都有一个对应的(同名)文件,导致由于类重复而导致编译失败。

如何让 Java 编译器忽略 sourceDirectory 中的源?

请注意,默认的 Lombok Maven 配置会让开发人员将 Java(带有 Lombok 注释)放在 src/main/lombok 文件夹中,而不是 src/main/java .但是,我不希望这样做,因为它会混淆 IDE,并且我的代码编译得很好(如果我删除了 Maven 插件)。

还要注意,简单地重新定义 sourceDirectory 也会让 IDE 感到不安(它们不再知道在哪里可以找到 Java 源代码!)。

最佳答案

我最近从使用 flakey maven-exec-plugin 方法为 javadoc 工具生成原始源代码转换为使用 lombok-maven-plugin

我的设置

  • src/main/java中的所有源
  • 生成的来源进入 target/generated-sources/delombok

我最初遇到了这个问题,但它似乎很容易解决:不要让 lombok-maven-plugin 使用 addOutputDirectoy 将 delombok 路径添加到编译器源路径。浏览器

<plugin>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>0.11.2.0</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>delombok</goal>
</goals>
</execution>
</executions>
<configuration>
<addOutputDirectory>false</addOutputDirectory>
<sourceDirectory>src/main/java</sourceDirectory>
</configuration>
</plugin>

这似乎暂时解决了这个问题

编辑:奖励,如何使用此设置生成正确的 javadocs

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.8.1</version>
<configuration>
<defaultVersion>${project.version}</defaultVersion>
<sourcepath>target/generated-sources/delombok</sourcepath>
</configuration>
</plugin>

关于java - 如何在 Maven 编译期间忽略 Java 源目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11329965/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com