1. 错误背景
基于maven构建的一个SpringBoot项目,在往远程服务器上进行部署的时候,服务器启动完成后,打开项目,右键 run as —> maven build ,报错如下:找不到符号,然后 Failed to execute goal org.apache.maven.plugins: maven-compiler-plugin:3.8.1: Compilation failure
2. 尝试的解决办法
网上查资料说 Failed to execute goal org.apache.maven.plugins: maven-compiler-plugin:3.8.1: Compilation failure 可能是因为找不到maven-compiler-plugin:3.8.1这个插件,然后我在pom.xml文件里添加了这个插件,
但是后面pom.xml文件报错说Duplicating managed version, 即重复定义插件版本,这是因为在pom.xml中继承了spring-boot-starter-parent,而spring-boot-starter-parent又继承了spring-boot-dependencies,在spring-boot-starter-parent或者spring-boot-dependencies中可能已经定义了这个插件的版本号。
(这里参考https://blog.csdn.net/weixin_34038293/article/details/91659454)
将刚刚添加的插件的版本号注释掉,不再报这个错,但是项目仍然不能maven build成功。
3. 解决办法
网上找了一堆可能的原因分析以及解决方案,试了试都没能解决问题,无奈只能再去请教大佬师兄,师兄给出的解决方法是 ,把大项目里面的orm项目按照 maven clean ——> maven update ——> maven install 的顺序执行一遍 ,然后自己的项目restapi 进行 maven build,终于出现build success!!!
(在进行orm的一堆操作的过程中,orm项目的pom.xml还有自己项目的pom.xml出现了一堆堆堆堆堆问题,在藕滴其他blogs中有记录)
原因分析: 个人感觉是因为在build时,orm项目里面并没有update和install,install命令可以完成项目编译、单元测试、打包功能,同时把打好的可执行jar包(war包或其它形式的包)布署到本地maven仓库,因此restapi项目在build时需要用到orm项目包里的东西时就会找不到。当orm项目clean , update, install 完成之后,restapi项目即可build success。