Maven启动Quarkus测试时,Bootstrap从Nexus拉取依赖报401未授权错误
Quarkus Bootstrap在Jenkins流水线中拉取依赖时返回HTTP 401未授权
在基于Kubernetes的企业级CI/CD环境中搭建了Jenkins流水线,用于测试小型Quarkus应用。本地IDE中@QuarkusTests可正常运行,但在Jenkins中执行mvn clean test -Dquarkus.test.profile=xxx时,Maven构建环节能正常从Nexus仓库拉取依赖,然而当Surefire插件启动QuarkusTests时,Quarkus Bootstrap拉取依赖失败,抛出如下错误:
Caused by: org.apache.maven.model.resolution.UnresolvableModelException: Could not transfer artifact io.quarkus:quarkus-bom:pom:2.15.0.Final from/to shp.mirror (http://<***************>/): authentication failed for http://<***************>/io/quarkus/quarkus-bom/2.15.0.Final/quarkus-bom-2.15.0.Final.pom, status: 401 Unauthorized
已确认Jenkins用户有权访问该失败的依赖包,且尝试了以下方案但均无效果:
- 在Surefire的Maven配置中传递Jenkins环境的Maven配置参数:
<configuration> <systemPropertyVariables> <maven.home>${maven.home}</maven.home> <maven.repo.local>${settings.localRepository}</maven.repo.local> <maven.settings>${session.request.userSettingsFile.path}</maven.settings> <maven.top-level-basedir>${session.topLevelProject.basedir.absolutePath}</maven.top-level-basedir> <quarkus.bootstrap.effective-model-builder>true</quarkus.bootstrap.effective-model-builder> </systemPropertyVariables> </configuration>
- 创建默认settings.xml位置(
~/.m2/settings.xml)与Jenkins环境所用配置文件的软链接 - 在测试前执行
mvn quarkus:go-offline预拉取依赖
需要以下帮助:
- 该错误的排查思路
- 收集Quarkus Bootstrap所需全部依赖的方法
内容的提问来源于stack exchange,提问作者pompom
相关产品推荐
相关产品推荐

