当我尝试在JDK 10下编译我的Java项目时,Lombok没有创建getter/setter。
使用Lombok注解的类。
在maven-compiler-plugin部分中。
当我通过mvn install编译时,我遇到了以下错误:
使用Lombok注解的类。
package com.testcompany.data;
import java.util.HashMap;
import java.util.Map;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode
public class DataInfo {
private Map<String,String> metadata = new HashMap<>();
private String extractedString;
}
Lombok注解类的使用
String test = dataInfo.getExtractedString();
我使用以下版本来将我的源代码编译成Java 10:
- maven(3.5.4)
- maven-compiler-plugin 3.8.0
- Java 10(子版本2)
- Lombok 1.18.2
pom.xml文件中的依赖部分
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
在maven-compiler-plugin部分中。
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
当我通过mvn install编译时,我遇到了以下错误:
MemberRegistration.java:[50,36] cannot find symbol
symbol: method getExtractedString()
location: variable dataInfo of type com.testcompany.data.DataInfo
在使用JDK 10时,是否需要采取不同的操作?
@Getters
吗? - khmarbaise@Data
是一个方便的快捷注解,它将@ToString
、@EqualsAndHashCode
、@Getter / @Setter
和@RequiredArgsConstructor
的功能捆绑在一起。 - Shannon@Data
就足够了,我可以确认您的依赖关系和<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><version>3.8.0</version><configuration><release>10</release><annotationProcessorPaths><path><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.2</version></path></annotationProcessorPaths></configuration></plugin></plugins></build>
,Maven 构建成功。 - Naman