解决maven编译在nexus上找不到jar包问题

解决maven编译在nexus上找不到jar包问题

  • 前言
    • 需求背景
    • 问题发现
      • 方法一
      • 方法二
      • 方法三

前言

Nexus是一个强大的Maven仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问。利用Nexus你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个Artifact。Nexus是一套“开箱即用”的系统不需要数据库,它使用文件系统加Lucene来组织数据。

需求背景

使用gitlab项目发布到服务器的时候都需要先进行编译,公司使用nexus作为maven管理。

问题发现

再服务器编译过程中,找不到jar包,先将几种解决方案记录。

方法一

在编译过程中,报如下错误,导致无法正常编译(大概意思就是没有找到这个jar包)。

[ERROR] Failed to execute goal on project xxx-project: Could not resolve dependencies 
for project com.runwu.newpay:xxx-project:jar:1.0-SNAPSHOT: Failure to find
com.xxx:jar:2.0.8 in http://192.168.xx.xxx:8081/repository/maven-public/ was cached 
in the local repository, resolution will not be reattempted until 
the update interval of nexus has elapsed or updates are forced -> [Help 1]

然后我去nexus上找发现,真的没有,就手动把这个jar包上传上去,以为万事大吉时,结果还是报这个错,后面又在本地进行编译,发现没问题,后来百度看到一位老哥的文章,在maven编译时加入-U

mvn clean install -U

结果还真的可以。

-U 的解释如下:强制检查丢失的版本以及更新远程存储库上的快照

-U,--update-snapshots Forces a check for missing releases
and updated snapshots on remote repositories

方法二

如果上述方法还没有解决你的问题,可以看下本地maven仓库是否有对应的包,查看setting.xml配置文件中,找到标签所对应的本地仓库路径。

解决maven编译在nexus上找不到jar包问题_第1张图片
然后将你的Jar包放到对应的目录中,重新执行mvn clean install -U命令即可。

方法三

如果你配置文件中使用的公共镜像,比如:aliyun镜像,但是本地maven仓库有了jar包,编译时仍然访问aliyun仓库导致报错。

解决maven编译在nexus上找不到jar包问题_第2张图片
你可以查看本地仓库的jar包目录中是否包含_remote.repositories文件。

  1. 你可以删除这个文件

  2. 或重新编辑此文件,如图

解决maven编译在nexus上找不到jar包问题_第3张图片

  1. 重新执行mvn clean install 命令

你可能感兴趣的:(Maven,专治疑难杂症,maven,jar,java)