编译错误 - Groovy 和 Lombok
Compilation error - Groovy and Lombok
这是我的 Maven 命令
mvn clean compile test-compile test
但我正面临
[ERROR] 没有更多标记 - 无法解析错误消息:Groovy:unable 解析 class 委托,无法找到 class 注释
[错误] 12. D:\Projects\lombok-groovy-example-master\src\main\groovy\prystasj\lombok\example\groovy\Rocket.groovy 中的错误(第 5 行)
[错误] @数据
mvn --version
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>//...
Class(git 上的文件不同!)
@Data
public class Rocket {
}
您不应将 Lombok 用于 Groovy,它只能与 Java 一起使用。
Groovy 有内置注解 @Canonical
可以做你想做的事:
- 它创建有用的 equals、hashCode 和 toString 方法
- 它创建无参数和元组构造函数
所以在你的情况下使用:
@Canonical
public class Rocket {}
此外,您不需要为 Groovy 中的字段创建 getter 和 setter。如果您向 class 添加任何字段,Groovy 将 create getters and setters.
这是我的 Maven 命令
mvn clean compile test-compile test
但我正面临
[ERROR] 没有更多标记 - 无法解析错误消息:Groovy:unable 解析 class 委托,无法找到 class 注释 [错误] 12. D:\Projects\lombok-groovy-example-master\src\main\groovy\prystasj\lombok\example\groovy\Rocket.groovy 中的错误(第 5 行) [错误] @数据
mvn --version
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>//...
Class(git 上的文件不同!)
@Data
public class Rocket {
}
您不应将 Lombok 用于 Groovy,它只能与 Java 一起使用。
Groovy 有内置注解 @Canonical
可以做你想做的事:
- 它创建有用的 equals、hashCode 和 toString 方法
- 它创建无参数和元组构造函数
所以在你的情况下使用:
@Canonical
public class Rocket {}
此外,您不需要为 Groovy 中的字段创建 getter 和 setter。如果您向 class 添加任何字段,Groovy 将 create getters and setters.