在学习这个RuoYi-Vue-Process项目的时候,编译报错。
https://gitee.com/calvinhwang123/RuoYi-Vue-Process
报错信息
编译警告信息
java: You aren't using a compiler supported by lombok, so lombok will not work and has been disabled.
Your processor is: com.sun.proxy.$Proxy26
Lombok supports: sun/apple javac 1.6, ECJ
编译报错信息
RuoYi-Vue-Process/ruoyi-activiti/src/main/java/com/ruoyi/activiti/service/impl/ProcessServiceImpl.java:105:11
java: 找不到符号
符号: 方法 setInstanceId(java.lang.String)
位置: 类型为com.ruoyi.activiti.domain.InstanceBusiness的变量 ib
原因分析
我一开始以为是文件编码格式问题,后来排除掉了这个猜想。经多方对比,发现是因为RuoYi-Vue-Process/ruoyi-activiti
这个模块依赖的lombok
导致的。
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
解决办法一:不修改项目文件
此方法不需要修改项目文件,而是直接修改IDEA的配置。
Setting:-
Build, Execution, Deployment -> Compiler -> Shared build process VM options
-Djps.track.ap.dependencies=false
这样就可以解决了。
解决方法二:修改依赖
把RuoYi-Vue-Process/ruoyi-activiti/pom.xml
中的以下内容修改。
由
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
修改成
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
刷新maven配置文件即可。
原因分析 :
之前的lombok版本低导致的bug <lombok.version>1.18.4</lombok.version>