当 Bootstrap 尝试从Nexus repo获取依赖项时,Quarkus测试的Maven启动导致401未授权错误

kyks70gy  于 2022-12-26  发布在  Maven
关注(0)|答案(1)|浏览(173)

我刚刚设置了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 所需的所有依赖项的想法都将受到极大的赞赏。
谢啦,谢啦

bkhjykvo

bkhjykvo1#

您是否在MAVEN_OPTS中设置了java.net.ssl.*属性,如https://maven.apache.org/guides/mini/guide-repository-ssl.html中所述?如果是,它们也需要传播到surefire插件中。

相关问题