今天,应客户要求,将公司的代码合并到客户的服务机上。
但是,在编译的时候,出现找不到本地的jar包。
问题描述
因为公司的代码添加了几个在lib下面的jar包以及引用了一些新的依赖,所说的这些是之前在客户那边服务机上没有的jar。
在合并后进行编译,就报找不到jar的错误。
简单描述如下:
1.Maven 本地仓库明明有jar包,pom文件还是报错 找不到包 。
2.无网络情况下项目用本地仓库已经有的jar包,maven却老是报找不到某些报。
3.maven项目找不到本地仓库已经存在的jar包
但是,本地仓库分明存在啊!!!
原因分析
原来,代码在公司中的私服仓库获取依赖已经走了一次转码,再次将代码放到客户机上获取客户那边的私服仓库,就会出现maven无法识别私服仓库。导致报找不到jar。
解决方案
方法一:
可通过在lib下添加报错的jar包,然后在pom.xml文件中以systemPath路径指定jar包的位置。
当然,这在少数jar包情况下是挺方便的,但不利于后期新增jar包进行管理。
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/dom4j-1.6.1.jar</systemPath>
</dependency>
方法二:
在客户那边重新建立一个私服仓库,就是将公司的私服仓库拷贝到客户那边,这样就可以完美解决问题,同时对于后期维护也很方便。