公司私服因为本人驻外原因已经不维护。很多下不到的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命令不太熟悉,你可以自行去查下应该都有的。
多谢我看看!