小编典典

Jenkins无法构建多模块Maven项目

jenkins

我有一个多模块Maven项目,其中有多个微服务作为模块,因此我的父母中列出了一些模块,pom.xml如下所示:

<modules>
    <module>core</module>
    <module>model-base</module>
    <module>module1</module>
    <module>module2</module>
    ...
    <module>module5</module>
    <module>module7</module>
    <module>module6</module>
</modules>

这里module7是依赖项,module5, 6因此我在下面列出了依赖项module7 pom.xml

<parent>
    <artifactId>pojectA</artifactId>
    <groupId>com.domain</groupId>
    <version>1.0-SNAPSHOT</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>module7</artifactId>
<dependencies>
    <dependency>
        <groupId>com.domain</groupId>
        <artifactId>core</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.domain</groupId>
        <artifactId>module5</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>com.domain</groupId>
        <artifactId>module6</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>
</dependencies>

当我mvn clean package在本地运行时,按预期方式在module5, 6被调用之前,module7但是在詹金斯中,它正在尝试构建module 5然后module7使构建失败说:

[ERROR] Failed to execute goal on project module7: Could not resolve dependencies for project module7:jar:1.0-SNAPSHOT: Could not find artifact module6:jar:1.0-SNAPSHOT -> [Help 1]

我是否需要运行其他作业或重新排序模块,pom.xml从本地到Jenkins有什么不同?感谢对此的任何帮助。


阅读 813

收藏
2020-07-25

共1个答案

小编典典

众所周知,问题在于子模块之间的依赖关系失败,因为它们尚未安装在本地存储库中(因为尚未构建)。导致此问题的目标(无论如何对我而言)是mvn test,由调用mvn package。您的本地构建可能会起作用,因为在某个时候您已经完成了a mvn install,这已经引导了您的系统。

在Jenkins中,我发现使这些构建起作用的唯一方法是使用“ 预构建”步骤 调用Maven安装目标,然后照常构建主要步骤。

詹金斯配置

2020-07-25