Reputation: 540
Here is my Maven command
mvn clean compile test-compile test
for this project
but I am facing with
[ERROR] no more tokens - could not parse error message: Groovy:unable to resolve class Delegate , unable to find class for annotation [ERROR] 12. ERROR in D:\Projects\lombok-groovy-example-master\src\main\groovy\prystasj\lombok\example\groovy\Rocket.groovy (at line 5) [ERROR] @Data
mvn --version
Apache Maven 3.5.0 (ff8f5e7444045639af65f6095c62210b5713f426; 2017-04-03T22:39:06+03:00)
java -version
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)
Code from repository
<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 (file on git differs!)
@Data
public class Rocket {
}
Upvotes: 7
Views: 6652
Reputation: 911
I was also having issue on using Lombok with groovy. (It wasn't generating any code) So I just changed my model class to .java
and did the lombok stuff on the java class. Since we can intermix java and groovy code without any issue, I'm now able to use it without any issue.
Upvotes: 0
Reputation: 22605
You shouldn't use Lombok for Groovy, it is intended to be used only with Java.
Groovy has built-in annotation @Canonical
which does what you want:
So in your case use:
@Canonical
public class Rocket {}
Additionally you don't need to create getters and setters for fields in Groovy. If you add any field to your class, Groovy would create getters and setters.
Upvotes: 16