当前位置: 首页 > 知识库问答 >
问题:

maven编译有时失败,有时成功

乜清野
2023-03-14

我使用vs代码,并且已经安装了“vs代码的Lombok注释支持”。我使用maven clear然后进行编译,结果编译失败。然后,当我尝试maven编译几秒钟后,它构建成功。我在两个maven编译之间没有执行任何操作。
我检查了错误消息,似乎Lombok注释不起作用。
无法执行目标org.apache.maven.plugins:maven-compiler-plugin:3.5.1:compile(default-compile)[error]symbol:method setName(java.lang.string)

[错误]符号:方法SetCustomerURL错误]必需:无参数

当它成功的时候,我得到了信息

[INFO] Building demo 0.0.1-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:3.1.0:resources (default-resources) @ withjpa ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 0 resource
[INFO] 
[INFO] --- maven-compiler-plugin:3.5.1:compile (default-compile) @ withjpa ---
[INFO] Nothing to compile - all classes are up to date
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS   

而我的pom.xml是

        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version> <!-- or newer version -->
                <configuration>
                    <source>1.8</source> <!-- depending on your project -->
                    <target>1.8</target> <!-- depending on your project -->
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.mapstruct</groupId>
                            <artifactId>mapstruct-processor</artifactId>
                            <version>${org.mapstruct.version}</version>
                        </path>  

我想知道我应该把插件版本改成旧版本吗?但当我将其更改为3.1.0时,就会出现CoreException。
以下是我的回复:https://github.com/lyl156/backend/blob/master/src/main/Java/com/example/withjpa/domain/category.Java

共有2个答案

耿永寿
2023-03-14

Lombok在编译时进行隐藏的字节代码操作。

这里使用的编译器中有一个没有添加Lombok支持,因此没有进行操作。您的IDE中有一个编译器,命令行中有一个编译器,它们都输出到相同的位置。

我敢说您还没有遵循https://projectlombok.org/setup/maven。

暨鹭洋
2023-03-14

试试看:

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <annotationProcessorPaths>
                            <path>
                                <groupId>org.mapstruct</groupId>
                                <artifactId>mapstruct-processor</artifactId>
                                <version>${org.mapstruct.version}</version>
                            </path>
                            <path>
                                <groupId>org.projectlombok</groupId>
                                <artifactId>lombok</artifactId>
                                <version>${lombok.version}</version>
                            </path>
                        </annotationProcessorPaths>
                        <compilerArgs>
                            <compilerArg>
                                -Amapstruct.defaultComponentModel=spring
                            </compilerArg>
                        </compilerArgs>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

另见:

  • https://mapstruct.org/faq/#Can-i-use-mapstruct-togeth-with-project-lombok
    • 和链接示例

 类似资料:
  • 我试图在eclipse中用maven构建一个spark应用程序,但我遇到了一个编译失败。我修正了系统变量,给它提供到JDK的路径,而不是到JRE的路径,如下所示: 并且我将这个字符串添加到变量中,但是没有起作用。因此,我尝试不使用如下但没有新内容。 因此,我尝试通过eclipse来指出我的JDK,如下所示:,我也选择了JDK,但这个解决方案也不起作用,所以我决定使用cmd来修复它: 我检查了,结果

  • 我有一个简单的JNI.dll,试图在测试Java应用程序中使用它。它是一个文件,由几个函数组成,头部由生成。(我正在使用MinGW btw编译) 如果我用GCC编译并链接这段代码,我就可以很好地用system.loadLibrary()加载.dll并使用它。但是,如果我用G++编译它,将失败,出现可怕的“UnsatisfiedLinkError”。 g++-wl,--add-stdcall-ali

  • 在pom中。xml我使用spring-tx-4.1.4。释放。但是maven编译该项目时出现了一个错误: org.apache.maven.lifecycle.生命周期执行异常:无法执行目标org.apache.maven.plugins: maven-compiler-plugin: 2.3.2:编译(default-compile)项目事务:编译失败\p4_projects\交易\src\ma

  • 我在我的项目中使用Fuse 6.1和camel 2.12版本,并面临以下问题。我试图将java.util.HashMap传递到我的xslt,并访问map以检索我的XSLT中的一堆值。为此,我构建了一个映射,并将其放在bean的头中,并访问它XSLT。我创建了一个测试用例来运行此路线,一切都运行良好,能够在XSLT中访问映射,XSLT正在编译良好,并生成预期的XML,如果我在类路径中net.sf.s

  • 我有一个由多个模块组成的Eclipse Maven项目,其中一些包含我想(使用Jaxb)为其生成类的Xml模式。我的项目布局如下: 包含架构的项目有: 某些模块包含从其他模块导入架构的架构: 由于模式位于不同的项目中,我使用类路径目录解析器和目录文件来解析模式的位置。 automobile项目依赖于types项目中的模式。下面是其目录文件(catalog.xml)中的条目: 请注意使用classp

  • 嗨,我正在尝试生成Cordova3.5.1.jar。但是在我的命令提示窗口中出现了以下错误。有什么可以帮助sp的吗 生成失败