maven install报错:找不到符号

0. 问题描述

在进行项目打包的时候发现执行maven install会出现报错:找不到符号

[ERROR] /Library/project/work/fantu_java/digitalenterprise_business/bladex-biz/blade-service-api/blade-fleet-basic-api/src/main/java/org/springblade/fleetbasic/feign/IBasicGoldMedalDriverAreaFeign.java:[18,38] 找不到符号
  符号:   变量 APPLICATION_FLEET_BASIC_PROVIDER_NAME
  位置: 接口 org.springblade.common.constant.LauncherConstant
[ERROR] /Library/project/work/fantu_java/digitalenterprise_business/bladex-biz/blade-service-api/blade-fleet-basic-api/src/main/java/org/springblade/fleetbasic/feign/IBasicFileFeign.java:[20,38] 找不到符号
  符号:   变量 APPLICATION_FLEET_BASIC_PROVIDER_NAME
  位置: 接口 org.springblade.common.constant.LauncherConstant

1. 解决思路

首先我们要明确出现这个问题可能的原因:

  • 项目编码格式不统一
  • 项目编码使用的JDK版本不一致
  • pom依赖未添加或者读取不到,一般是版本号不一致的问题
  • 开发工具bug,一般靠重启或者升级版本解决

我首先排除掉的原因是pom依赖问题,因为项目中已经添加了对应依赖了,且在idea中运行是正常的,就是maven install的会报错

其次检查了下项目的jdk版本都是1.8,所以第二个原因也排除

于是我又尝试了在pom中指定编码格式,但是重新install后依然报错。

<plugin>
     <groupId>org.apache.maven.plugins</groupId>
     <artifactId>maven-compiler-plugin</artifactId>
     <version>3.3</version>
     <configuration>
       <source>1.8</source>
       <target>1.8</target>
       <encoding>UTF-8</encoding>
     </configuration>
  </plugin>

到这里发现都走不通,于是怀疑是本机环境的问题,于是重启后再次install。发现还是报错。尝试让其他同事maven install,这个时候就出现了比较神奇的现象,有的同事可以正常install,而有的同事和我报一样的错。

大家看到这里,能想到是什么原因导致的吗?

2. 最终解决方案

其实我们有时候解决问题要看到本质,坚定自己掌握的知识。就像这个问题,我所了解到的导致这个问题的原因就是上述所说的四个,去查询了相关资料,也就只有这四个。

而且有的同事可以打包,有的不行,就说明不是环境的问题。于是我重新检查了pom的依赖关系,重点关注了LauncherConstant接口类所在的jar包,这个包是我们自定义的commons模块中的。当我仔细检查了这个commons的pom之后就发现了问题所在

commons中的打包方式,不知道被哪位同事给设置成了pom,也就导致commons一直没有被打包成jar,从而引用不了。而有的同事可以正常打包,是因为并没有重新install commons模块,本地maven仓库中还是有commons模块的jar包。

解决办法也很简单,就是把package改为jar,或者直接删除掉这个标签,因为pom中不填写打包方式默认就是jar

<packaging>jar</packaging>

这里也提醒我们,项目开发中注意细节,一些小的知识点掌握的不够牢靠的话,很可能导致很难排查的问题。

猜你喜欢

转载自blog.csdn.net/qq_24950043/article/details/124076979