chatgpt出来后很少再去看博客了,不过偶尔写一下还是挺好的。
问题
最近换了台电脑,安装了好了jdk和mvn后,编译springboot项目报错:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project shenyi-component-lderp: Fatal error compiling: java.lang.NoSuchFieldError: Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field 'com.sun.tools.javac.tree.JCTree qualid' -> [Help 1]
观察错误可以发现是mvn版本问题:
项目里用的是3.8.1,新电脑安装的是3.9.7, mvn版本不匹配导致了这个问题
解决方案
一个是改项目里的maven-compiler-plugin,改成更新的3.9 ,但这个项目不单单是我在开发,还有其他人也在维护使用,这个方法不行。
项目的改不了就改自己电脑的吧,先卸载已安装的,再去官网下载一个3.8的版本,之后就正常编译了。
下载地址
https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/
以macos系统为例
卸载已安装的mvn
brew uninstall mvn
安装3.8.8的mvn
https://dlcdn.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz
下载后,将压缩文件解压到下载目录下,执行如下命令
mkdir ~/soft
mv ~/Downloads/apache-maven-3.8.8 ~/soft/mvn
sudo ln -s ~/soft/mvn/bin/mvn /usr/local/bin/mvn
之后就能正常使用啦
mvn clean install