在vscode中使用基于jdk11的maven模板时,有些会自动创建module-info.java文件,声明不同模板的依赖。如果这时引用了lombok注解但是没有申明对lombok的依赖,那么vscode可能会不能访问到lombok项目,从而不能理解lombok注释。
比如项目结构如下:
.
├── pom.xml
├── README.md
├── src
│ ├── main
│ │ ├── java
│ │ │ ├── com
│ │ │ │ └── zzp
│ │ │ │ └── project
│ │ │ │ └── Dept.java
│ │ │ └── module-info.java
│ │ └── resources
│ │ ├── com
│ │ │ └── zzp
│ │ │ └── mapper
│ │ │ └── DeptMapper.xml
│ │ └── SqlMapConfig.xml
│ └── test
└── target
其中src/main/java/com/zzp/project/Dept.java中使用了lombok注解:
package com.zzp.project;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Dept {
private Integer deptno; // 部门编号
private String dname; // 部门名称
private String loc; // 部门地址
}
但是,如果src/main/java/module0info.java中没有添加对lombok的依赖:
module com.zzp.project {
requires java.logging;
}
那么vscode会显示
The type lombok.AllArgsConstructor is not accessible
要解决这个问题,首先需要在项目的pom.xml添加projectlombok的依赖,安装Lombok Annotations Support for VS Code插件。然后在src/main/java/module0info.java中申明引用了lombok的模块的依赖:
module com.zzp.project {
requires java.logging;
requires lombok;
}