当前位置: 首页 > 面试题库 >

在Maven编译期间如何忽略Java Source目录?

佟颖逸
2023-03-14
问题内容

我正在尝试使用Lombok Maven插件来确保在使用Lombok时正确创建Javadocs 。

在编译之前,Lombok Maven引入了一个新的代码生成目标。在我的配置中,我的sourceDirectory(带有Lombok批注的Java
src/main/java)被处理以在中创建Java(没有Lombok批注)target/generated-sources/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使用来将delombok路径添加到编译器源路径中addOutputDirectoy。IE浏览器

<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>


 类似资料:
  • 我正在尝试使用Lombok Maven插件来确保在使用Lombok时正确创建Javadocs。 Lombok Maven在编译之前引入了一个新的代码生成目标。在我的配置中,将处理我的源目录(带有Lombok注释的Java,

  • 我有一个Visual Studio 2012 TypeScript项目。当我第一次制作项目时,我添加了 2 个新的 .ts 文件,这些文件是 Framework.ts 此时我不知所措。我看了看csproj文件: 然后是打字稿编译器的执行命令: 这确实也应该构建这些文件。我只是不知道为什么它拒绝。有谁知道如何解决这个问题?

  • 本文向大家介绍Maven在Java8下如何忽略Javadoc的编译错误详解,包括了Maven在Java8下如何忽略Javadoc的编译错误详解的使用技巧和注意事项,需要的朋友参考一下 JavaDoc简介And基础知识 (一) Java注释类型 //用于单行注释。 /*...*/用于多行注释,从/*开始,到*/结束,不能嵌套。 /**...*/则是为支持jdk工具javadoc.exe而特有的注释语

  • 忽略编译器警告 格式 #pragma clang push #pragma clang diagnostic ignored "错误类型" // 存在警告的代码 #pragma clang pop > 1.在需要忽略的警告处右键 -- Reveal in Log 2.会给出警告的详细信息,其中包括警告的类型 3.高亮选中的便是这个警告的类型 4.在警告代码处增加如下代码 Command

  • 我希望能够自动设置我们的eclipse项目来忽略使用m2e的可选编译问题,但是我似乎遇到了m2e和maven的冲突。 如果我使用build helper maven插件添加源目录,那就太好了——我不必自动将

  • 问题内容: 我编译的Go代码并未在Linux上以扩展名结尾。 有关在.gitignore文件中忽略这些提示的任何提示? 问题答案: 将您的构建产品与源代码分开。这有几个优点: 您可以同时启动同一代码的许多不同版本,而无需创建多个克隆 可以很容易确定自己确实做了一次清洁工作;将删除越野车将丢失的文件 您可以从源代码树的只读副本(例如CD-ROM)开始构建 您不太可能意外提交生成的文件 将清除您的源代