我刚刚设置了Jenkins pipeline来测试一个小型Quarkus应用程序。我的Jenkins在基于Kubernetes的企业CI/CD环境中运行,带有企业Nexus存储库。第一阶段只是尝试使用以下命令启动@QuarkusTests(在我的IDE中本地运行):
mvn clean test -Dquarkus.test.profile=xxx
一切似乎构建正常,但当surefire插件启动QuarkusTests时,Quarkus Bootstrap 尝试从Nexus repo获取依赖项,并因HTTP 401错误而失败。
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
Maven从Nexus中正确收集了依赖关系,在此阶段之前没有任何问题。
我检查了Jenkins用户是否能够访问失败的依赖项。
我尝试过的事情:
- 在surefire maven配置中,我尝试从Jenkins环境传递maven配置设置,如文档中所推荐的那样(通过运行mvn -X收集值)
<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>
- 我还尝试在默认设置位置(~/. m2/settings. xml和Jenkins环境中使用的位置)之间创建链接
- 我还尝试了mvnquarkus:go-offline before running the tests,希望这能收集到Quarkus Bootstrap 所需的所有东西,但似乎没有什么不同
任何关于可能导致此错误的原因,或关于如何收集Quarkus Bootstrap 所需的所有依赖项的想法都将受到极大的赞赏。
谢啦,谢啦
1条答案
按热度按时间bkhjykvo1#
您是否在
MAVEN_OPTS
中设置了java.net.ssl.*
属性,如https://maven.apache.org/guides/mini/guide-repository-ssl.html中所述?如果是,它们也需要传播到surefire插件中。