我需要设置一个多模块 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 repo 在哪里,但我不知道该怎么做。