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

编译错误-Groovy和Lombok

马阳曦
2023-03-14

这是我的Maven命令

mvn clean compile test-compile test

对于这个项目

但我面对的是

[错误]没有更多标记-无法分析错误消息:Groovy:无法解析类委托,无法找到用于注释的类[错误]12。D:\Projects\lombok groovy example master\src\main\groovy\prystasj\lombok\example\groovy\Rocket中出错。groovy(第5行)[错误]@数据

mvn—版本

Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T22:39:06+03:00)

java-版本

java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)

存储库中的代码

<properties>
    <groovy.version>2.0.5</groovy.version>
    <java.version>1.6</java.version>
    <lombok.version>0.11.4</lombok.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <build>
    <plugins>
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
    <compilerId>groovy-eclipse-compiler</compilerId>
    <fork>true</fork>
    <verbose>false</verbose>
    <source>${java.version}</source>
    <target>${java.version}</target>
    <encoding>${project.build.sourceEncoding}</encoding>
    <compilerArguments>
    <javaAgentClass>lombok.core.Agent</javaAgentClass>
    </compilerArguments>
    </configuration>
    <dependencies>
    <dependency>
    <groupId>org.codehaus.groovy</groupId>
    <artifactId>groovy-eclipse-compiler</artifactId>
    <version>2.7.0-01</version>
    </dependency>
    <dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>${lombok.version}</version>
    </dependency>//...

类(git上的文件不同!)

@Data
public class Rocket {
}

共有1个答案

隗驰
2023-03-14

您不应该将Lombok用于Groovy,它只用于Java。

Groovy具有内置的注释Canonical,可以满足您的需要:

  • 它创建了有用的equals、hashCode和toString方法
  • 它不创建参数和元组构造函数

因此,在您的情况下,请使用:

@Canonical
public class Rocket {}

此外,您不需要为Groovy中的字段创建getter和setter。如果向类中添加任何字段,Groovy将创建getter和setter。

 类似资料:
  • 在类似的问题中,我找不到充分的答案。我遵循了Groovy的IntelliJ教程,但它确实解决了这个问题。最后,我通过1A4 Maven文件解决了这个问题。 为了更容易地入门,也许您可以帮助我和其他人使用IntelliJ中的Groovy。 我做了什么: 我安装了Groovy SDK 我启动了IntelliJ,创建了一个新的Groovy项目,我可以看到添加了库。 创建我的第一个Groovy类后,提到了

  • 我在尝试在Swift 3.0.2iOS项目中使用Realm时遇到了一个问题。从简单开始,我想将它应用于一个名为的类: 看起来很简单,对吧?尽管如此,我还是遇到了以下编译错误: 有人知道我该怎么解决这个问题吗?从我在网上看到的来看,我应该没有必要实现那些方法。 设置: X代码8.2.1 Swift 3.0.2 使用Cocoapod安装Realm

  • 问题内容: 当我在Netbeans中构建并运行程序时,它可以正常工作。但是当我尝试“ mvn compile”时,使用相同的pom.xml文件会出现以下错误: 我的Java版本不是1.3,这里是“ mvn -version”的结果 这是第53行: 问题答案: 问题是在Maven2中默认使用和 您可以通过将其添加到pom中来解决此问题: 将其放在最顶层的父pom中是很实际的,这样您派生的pom不需要

  • 我遇到了一个初学者的编译错误: 我的简单程序: 我尝试使用以下命令编译它: gcc-g-Wall-ansi launch_瓷砖。c-o tiles\u程序 并得到这些错误: 启动_tiles。c: 在函数“main”中: launch_tiles. c: 17:19:错误:预期')'之前';'令牌 launch_tiles. c: 17:19:错误:太少的参数函数'fget' /usr/inclu

  • 当我退出我的应用程序时,这个folloeing错误已经产生。

  • 我是Scala和SBT的新手,所以我可能会遗漏一些明显的东西。 我试图编译http://www.scalafx.org/docs/quickstart/上的HelloWorld示例