git - 将多模块 Maven 项目放入 Jenkins

我需要设置一个多模块 Maven 项目以在 Jenkins(版本 1.534)中构建。每个模块都在自己的 Git 存储库中,彼此完全独立:

/home/git/ProjectDomain.git
/home/git/ProjectWAR.git

在本地我已经构建了自己的父 POM.XML 并将每个项目都放在一个子文件夹中:

<modules>
    <module>ProjectSupport</module>
    <module>ProjectWAR</module>
</modules>

这在本地有效,但我无法在 Jenkins 上使用它,而且我似乎找不到任何在线文档来说明如何执行此操作。有人对此有很好的引用吗?

编辑:我尝试使用的当前父 pom 位于/ProjectWAR 文件夹中,看起来像这样:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.company.project</groupId>
    <artifactId>Project</artifactId>
    <packaging>pom</packaging>
    <name>Project</name>
    <version>1.0</version>

    <modules>
        <module>../ProjectDomain</module>
        <module>../ProjectWAR</module>
    </modules>
</project>

它再次在本地运行,但在 Jenkins 上不起作用。我目前收到的错误是:

[FATAL] Non-readable POM /var/lib/jenkins/jobs/Project - Integration/workspace/../ProjectDomain/pom.xml: /var/lib/jenkins/jobs/Project - Integration/workspace/../ProjectDomain/pom.xml (No such file or directory) @ 
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:364)
at hudson.maven.MavenEmbedder.buildProjects(MavenEmbedder.java:361)
at hudson.maven.MavenEmbedder.readProjects(MavenEmbedder.java:331)

所以不知何故,我需要告诉它 ProjectDomain 存储库在哪里,但我不知道该怎么做。

最佳答案

这样一个多模块项目的结构应该是这样的:

  pom.xml (parent)
   +--- module-1 (pom.xml)
   +--- module-2 (pom.xml)

父级将是 git 存储库的根目录。这使您在使用此类项目(Eclipse 或任何 IDE)以及 Jenkins 时的生活变得简单。

https://stackoverflow.com/questions/19572565/

相关文章:

plot - 删除 gnuplot 自动标题键标签中的文件路径,只留下文件名

git - 不支持的 Git 版本

intel - tboot 的文档?

php - 从 $_SERVER ['REQUEST_URI' 中删除父文件夹];

regex - 是否可以在正则表达式中对变量值进行数学运算?

recursion - 树的路径列表上的 F# 尾递归

sql - 留在Access中的 "SQL Mode"?

inno-setup - 从多个条目将参数传递给 Inno Setup Check 函数

git - 将 git 提交与相同的消息结合起来?

c# - .NET 中 SafeBuffer 和 SafeHandleZeroOrMinusOneI