【问题标题】:Jenkins+Nexus - Parsing POM fails with Peer Not AuthenticatedJenkins+Nexus - 解析 POM 失败,Peer Not Authenticated
【发布时间】:2015-03-14 01:02:51
【问题描述】:

不是重复的!我已经查看了类似标题的 SO 资源,但是这个问题似乎与 Jenkins 和 ssh 有关,其他的都没有涵盖这个问题。具体来说,这不是 Maven 问题,而是 Jenkins 问题。

在解析我的 POM 时,Jenkins 无法通过 ssh 连接到 nexus(它正在寻找它正在处理的 POM 的父 POM)。在这个过程中(接近开始),POM 没有被 Maven 本身读取——它被 Jenkins(或其中一个插件)用来创建依赖树,以便可以在正确的环境中构建项目命令。我得到的错误是peer not authenticated

这是输出的相关位:

Parsing POMs
Failed to transfer Could not transfer metadata org.us.thing:thingy:2.0/maven-metadata.xml 
from/to nexus (https://nexus:2443/nexus/content/groups/public):
peer not authenticated

ERROR: Processing failed due to a bug in the code. Please report this to jenkinsci-users@googlegroups.com
java.lang.IllegalStateException: Failed to build parent project for org.us.thing:thingy:pom:2.0
    at org.apache.maven.project.MavenProject.getParent(MavenProject.java:381)
    at hudson.maven.MavenModuleSetBuild$PomParser.invoke(MavenModuleSetBuild.java:1325)

我已经使用javax.net.ssl.trustStore 配置了一个信任库,当 maven 运行构建时,这可以通过 Jenkins 正常工作。我还认为 Jenkins 正在以某种方式关注它,因为不使用信任存储时出现的错误通常是不同的,但我不确定这是否真的如此。

我已使用我的关联 URL 和凭据将工件解析器配置为存储库管理器。我还使用我的凭据为 nexus 域设置了一个“Credentails”条目。

那么,如何进行呢?我的解决方案会很好,但我会满足于更多的面包屑。

【问题讨论】:

    标签: ssh jenkins nexus


    【解决方案1】:

    问题也可能是 Maven Project Plugin 中的错误。此插件尝试在运行 maven 作业之前解析构建步骤中的 pom.xml。但是,该插件可能无法正确使用您配置的 settings.xml 或您的 Maven 目标和选项(在我的情况下,它忽略了 -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true)。

    一种解决方法是在 Jenkins 中为您的项目配置一个预构建步骤,例如 Pre-Step->Invoke top level Maven target->Goal:clean -Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true。这个预构建步骤会下载必要的依赖,以便maven项目插件可以在构建步骤中找到它们并成功解析pom。

    【讨论】:

      【解决方案2】:

      由于 Jenkins 在解析 POM 之前未能连接到 Nexus,这意味着 POM 中设置的信息没有提供足够的信息来连接。凭据条目是很好的第一步。

      Jenkins 提供了一个选项来更早地设置此信息。 config file provider 插件允许您设置“外部”文件。这使您可以同时设置全局和用户 Maven settings.xml。然后在您的构建配置中,您可以添加一个构建步骤来使用该托管文件。我发现设置两件事很有帮助:

      1. 使用托管文件进行全局配置的 Jenkins 构建步骤
      2. Maven 步骤本身的高级设置中用户配置的托管文件。

      这将 POM 中的所有连接信息外部化,并摆脱了时序问题。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多