maven - 由于缺少父 pom,Jenkins 无法解析 pom

标签 maven jenkins pom.xml parent-pom

我们的 jenkins 作业无法解析 pom,因为它找不到父 pom。 ( Jenkins 版本2.332.3)

Parsing POMs
Failed to transfer Could not find artifact <our parent pom> in central (https://repo.maven.apache.org/maven2)
ERROR: Failed to parse POMs
org.apache.maven.project.ProjectBuildingException: Some problems were encountered while processing the POMs:
[FATAL] Non-resolvable parent POM for <current project>: Could not find artifact <our parent pom> in central (https://repo.maven.apache.org/maven2) and 'parent.relativePath' points at wrong local POM @ line 10, column 13

项目设置为maven项目,没有目标可以执行。 如果我将作业配置为预构建步骤,则 Maven 构建成功。

-U-X 等标志不会更改日志消息。

父 pom 位于我们的私有(private) Nexus 存储库中的 Artifact 中,并且应该已经位于本地 .m2 存储库中,因为预构建步骤已成功。

在旧的 jenkins (2.263.4) 服务器上,构建工作得很好。

任何提示都将受到高度赞赏

最佳答案

从 Jenkins“1.651.3”升级到“2.346.3 LTS”后,我遇到了这个问题。
当我创建了一个明亮的新工作(没有副本)时 - 它起作用了。
当我运行升级后的作业时 - 它失败了。

我们的 Maven settings.xml 如下所示:

<settings   ... >
    <mirrors>
        <mirror>
            <id>my-mirror-id</id>
            <name>Name for my mirror</name>
            <url>http://myrepo.com/my-release-artifacts/</url>
            <mirrorOf>external:*,!my-snapshots-artifacts</mirrorOf>
        </mirror>
    </mirrors>
    ...
</settings>

Maven 使用此配置,但 Jenkins 无法正确解析此 pom,并且未使用镜像下载父 pom。

所以,是的,Jenkins 无法构建这个正确的 Maven 项目。

现在,我通过在配置文件中明确指定此存储库来为我们修复它。因此 Jenkins 能够解析存储库 - 像这样:

<settings   ... >

    <mirrors>
        <mirror>
            <id>my-mirror-id</id>
            <name>Name for my mirror</name>
            <url>http://myrepo.com/my-release-artifacts/</url>
            <mirrorOf>external:*,!my-snapshots-artifacts</mirrorOf>
        </mirror>
    </mirrors>

    ...

    <profiles>
        ...

      <profile>
         <id>release-repo</id>
         <repositories>
             <repository>
                 <id>my-release-artifacts</id>
                 <url>http://myrepo.com/my-release-artifacts/</url>
                 <releases>
                     <enabled>true</enabled>
                 </releases>
                 <snapshots>
                     <enabled>false</enabled>
                     <updatePolicy>always</updatePolicy>
                 </snapshots>
             </repository>
         </repositories>
         <activation>
             <activeByDefault>true</activeByDefault>
         </activation>
      </profile>

    </profiles>

    ...
</settings>

我花了几天时间在升级中才发现这个问题。祝大家好运。

关于maven - 由于缺少父 pom,Jenkins 无法解析 pom,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72600831/

相关文章:

jenkins - 如何从 Jenkinsfile 获取 "Scan Repository Now"

java - DH key 大小必须是 64 的倍数,并且只能在 512 到 2048(含)之间

jenkins - 如何有效且更快地杀死大量 docker 容器进程?

java - maven 的 Crystal 报告 jar

java - maven:没有主要 list 属性

java - Apache ServiceMix 安装 bundle OSGI

java - 绝对 uri : http://java. sun.com/jsp/jSTL/core 无法在 web.xml 或在 tomcat 中使用此应用程序错误部署的 jar 文件中解析

java - 尝试从 AngularJS 到 Spring MVC 使用 $http.post 服务时出现错误 415 - Maven

maven - 如何以编程方式使用存储在 Nexus 中的旧快照 Artifact

linux - J2OBJC make dist "no rule to make target"错误