背景
总结下工作中maven依赖引用失败的排查的过程
排查过程
从gitee上拉取了某个项目,使用Jenkins打包时出现,无法解析到某个依赖,如下图
1.首先排查Nexus私服上是否有这个包
查询Nexus,可以看到Nexus上是有这个包的,且这个包位于aliyun仓库内,如下图
2.其次,排查aliyun仓库是否有被jenkins引用到
需要查看jenkins引用的maven的settings.xml文件,这里可以通过jenkins控制台输出看到相关信息
找到服务器上的maven的settings.xml文件,部分信息如下
<profile> <id>public-snapshots</id> <repositories> <repository> <id>public-snapshots</id> <url>http://xxxx:9091/repository/maven-snapshots/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>public-snapshots</id> <url>http://xxxx:9091/repository/maven-public/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>public-snapshots</id> <url>http://xxxx:9091/repository/maven-public/</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> <activeProfiles> <activeProfile>public-snapshots</activeProfile> </activeProfiles> </settings>
可以看到settings.xml文件激活使用的仓库为maven-public,这里i需要查询这个是仓库还是仓库组,如果是仓库组,是否包含上文的aliyun仓库
maven-public信息如下,可以看到maven-public是一个仓库组,包含了4种仓库,因此maven-public是可以引用到aliyun仓库内的依赖的,还需要进一步排查
3.通过排查仓库组和仓库内依赖地址发现并没有什么问题,这里需要进一步分析为什么没有引用到这个依赖
排查后发现maven-public仓库组配置的<release>标签内没有开启对发行版本的支持,导致新项目打包时,非快照版本的包不会从仓库下载
修改配置后,开启maven-public仓库对发行版本依赖的支持,重新打包正常运行
<releases> <enabled>true</enabled> </releases>
标签:maven,依赖,仓库,snapshots,Maven,排查,Jenkins,public From: https://www.cnblogs.com/july-sunny/p/16770745.html