启用Artifactory的Jenkins执行Maven3时依赖解析失败求助
解决Jenkins+Artifactory环境下Maven3依赖解析失败(Unsupported transport protocol https)的问题
我之前在Jenkins集成Artifactory的环境里遇到过一模一样的问题,核心原因就是Maven的Wagon传输组件缺失了HTTPS协议的支持,或者相关配置存在疏漏。下面是我亲测有效的几个解决步骤:
1. 检查Maven安装目录下的Wagon组件
Maven 3.x版本需要依赖wagon-http组件来处理HTTPS请求,你需要确认Jenkins使用的Maven安装目录中是否包含对应的jar包:
- 进入Maven安装目录的
lib文件夹(比如/opt/maven/lib) - 检查是否存在
wagon-http-<版本号>.jar和wagon-provider-api-<版本号>.jar - 如果缺失,你可以从Maven仓库下载对应3.x以上的稳定版本,放到该目录下即可。
2. 修正Maven Settings.xml中的Artifactory镜像配置
确保你的Maven配置文件(Jenkins全局的settings.xml或者项目本地的)中,Artifactory的镜像URL是正确的HTTPS地址,并且配置格式无误:
<mirrors> <mirror> <id>artifactory-central</id> <mirrorOf>central</mirrorOf> <url>https://Server/libs-release</url> <!-- 确认这个地址拼写正确,能正常访问 --> </mirror> </mirrors>
同时,如果你Artifactory需要认证,还要在servers节点中添加对应的账号密码:
<servers> <server> <id>artifactory-central</id> <username>your-artifactory-username</username> <password>your-artifactory-password</password> </server> </servers>
3. 显式为Maven插件添加Wagon依赖
如果上述步骤无效,可以在项目的pom.xml中显式为maven-clean-plugin添加wagon-http依赖,强制Maven使用支持HTTPS的传输组件:
<build> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>2.5</version> <dependencies> <dependency> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-http</artifactId> <version>3.5.3</version> <!-- 选一个兼容Maven3的稳定版本 --> </dependency> </dependencies> </plugin> </plugins> </pluginManagement> </build>
4. 检查Jenkins服务器的网络与代理配置
- 确认Jenkins服务器能正常访问Artifactory的HTTPS地址,没有防火墙或网络策略拦截
- 如果Jenkins需要通过代理访问外部资源,要在Maven的
settings.xml中配置正确的HTTPS代理:
<proxies> <proxy> <id>company-proxy</id> <active>true</active> <protocol>https</protocol> <host>proxy.yourcompany.com</host> <port>8080</port> <username>proxy-user</username> <password>proxy-pass</password> <nonProxyHosts>your-artifactory-server|*.yourcompany.com</nonProxyHosts> </proxy> </proxies>
5. 验证Jenkins的Maven配置
进入Jenkins的「全局工具配置」,确认你选择的Maven安装是正确的,并且该Maven的配置文件路径指向了你修改后的settings.xml。
内容的提问来源于stack exchange,提问作者Alfredo
相关产品推荐
相关产品推荐

