最近在使用jenkins来管理公司的产品中的不同的工程质检的依赖打包关系,遇到了这样的一个问题:
我需要把一个项目中核心的打包工程所依赖的几个依赖工程发布到公司的私服中去供大包工程使用。通过如下maven命令,
clean compile install deploy -Dmaven.test.skip=true -X
构建jenkins任务。但是在执行的时候,所有的依赖工程都遇到了下面的错误:
报错状态码为401,401的意思就是没有经过授权,所以在发布依赖的时候就会报错。
解决方法是增加两个配置
1、maven的setting的配置
在jenkins服务器的maven配置中,找到他的setting文件,然后加上如下配置
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>Intenal Mirror</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
2、项目的pom依赖中的配置(这个一般都会加,上面的配置可能会忘掉)
<distributionManagement>
<repository>
<id>releases</id>
<url>http://172.100.2.140:8081/nexus/content/repositories/releases</url>
</repository>
<!-- <snapshotRepository> -->
<!-- <id>snapshots</id> -->
<!-- <url>http://192.168.2.30:8081/nexus/content/repositories/snapshots</url> -->
<!-- </snapshotRepository> -->
</distributionManagement>
snapshop的配置可是具体项目情况添加,我的项目没有就没有添加。
加上这两个配置之后就可以正常发布依赖了。
如果上面的加上了还不好使,可以查看一下私服上的release的这个配置是否是这样设置的
如果不是就改一下这个发布依赖的策略
如果上面的还不行的话,检查一下maven的版本是不是和私服上的不匹配,然后换上匹配的版本就可以了。
以上就是发布依赖失败可能存在的几种情况