Maven公司私服仓库下不到需要的依赖和jar包,我本地有全库,如何只加载本地库的jar包?

公司私服因为本人驻外原因已经不维护。很多下不到的jar包,我通过公司部门在公司的仓库拿到了全库包。但是替换到我的maven库中,我发现我在启动项目的时候,还是服务器一个个去私服去找,找不到就报错。

我这曾经屏蔽过一段pom代码

但是也不知道对不对

如何让本地项目maven先从本地库里面找,只加载本地库的jar和依赖,不通过私服进行下载

感谢!

<dependency>
    <groupId>org.hamcrest</groupId>
    <artifactId>hamcrest-core</artifactId>
    <version>1.5</version>
    <scope>system</scope>
    <systemPath>${basedir}/WebContent/WEB-INF/lib/hamcrest-core-1.3.jar</systemPath>
</dependency>

 

使用上面的  systemPath  方式,  但是 scope 必须设置为  system, 并且设置为了 scope 后打包时,此jar包将不会被打进包内;此方式只支持本地运行时可以,打包无法将此依赖jar包打进去。

还有就是如果你的本地maven仓库中明明有依赖jar包的话,还是需要去远程的私服仓库中下载的话,可以看看你本地的maven仓库中这个 jar 目录下是否存在  _remote.repositories 文件  ,如果存在则将其删除,然后再试试;

如果还是不行的话,可以使用下面的命令将 jar 包重新安装到本地maven仓库中,然后再项目中再进行依赖试试;注意:安装前需要将之前的此 jar包 目录删除掉;

mvn install:install-file -Dfile=(参数一) -DgroupId=(参数二) -DartifactId=(参数三) -Dversion=(参数四) -Dpackaging=jar
 
参数一:jar包的位置
参数二:groupId
参数三:artifactId
参数四:version

 

有没有直接自动只找本地库的方式,因为查的jar包太多了 这个命令我看到过 要下最少几十个。。

可以试试看本地的maven仓库中依赖的 jar 目录下是否存在  _remote.repositories 文件 ,如果有将其删除后再试试项目中的依赖导入。

 

因为如果本地maven仓库依赖jar目录下存在   _remote.repositories 文件,则需要去远程仓库进行加载的,将其删除后就不用去远程仓库了。

我删除一下试试确实有点多。。

 

如果是windows系统,可以编写dos命令,在本地仓库目录下进行 搜索 _remote.repositories 文件,并将其删除,可以省去一个个去删除了,会方便很多;

如果linux系统,则可以一样编写shell脚本; 例如下面的shell脚本:

find / -name "uap*" | xargs rm -rf

上面的这个脚本是 将根目录下 模糊查询出的  uap 相关的文件删除;

dos命令不太熟悉,你可以自行去查下应该都有的。

多谢我看看!