问题:可以正常引用,而且也有提示,但是就是没有效果出来,只是在项目的运行时,使用到lombok功能的位置会报错。
报错信息:
java: 找不到符号
符号: 方法 getUserName()
位置: 类型为com.cxj.entity.pojo.User的变量 user
java: 找不到符号
符号: 变量 log
位置: 类 com.cxj.SpringsecurityApplicationTests
问题解决 :
这是我们之前导入lombok依赖的代码
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
我们只需移除optional
属性,然后加上lombok的版本即可
optional当设置为true
时,表示该依赖是可选的。这意味着,如果其他项目依赖于包含此依赖的项目,这个依赖不会自动传递给其他项目。因此,optional
属性是否移除,看自己需求;但是版本号一定要指定。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
<!-- <optional>true</optional>-->
</dependency>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.36</version>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
在annotationProcessorPaths
中添加了lombok
的路径,目的是让 Maven 在编译时能够处理 Lombok 的注解。
在excludes
中排除了lombok
,这可能是因为在 Spring Boot 项目的打包过程中,不需要将 Lombok 的相关内容包含进去,因为 Lombok 的功能主要是在编译阶段起作用,运行时并不需要 Lombok 的库。
在上面三个位置加上lombok版本号,重新加载maven,等依赖加载完成后。
启动项目,lombok就可以正常使用了。