在多个Maven作业之间共享签出的代码库

在多个Maven作业之间共享签出的代码库,maven,jenkins,Maven,Jenkins,由于一些早就应该进行重构的遗留原因,我们构建层次结构中的一个子项目受制于两个独立的Maven构建,每个构建都有自己的WAR文件。从本质上讲,我不必详细讨论与此相关的问题,该项目应该分为两个项目,每个项目都有自己的WAR,但尚未完成。PMs不会分配时间,所以我们通过运行两个单独的构建来解决问题。每个构建的特殊性由各自的POM配置文件表示 mvn clean verify-p foo使foo.war与mvn clean verify-p bar使bar.war出自同一个项目 我在做CI,我需要把这个

由于一些早就应该进行重构的遗留原因,我们构建层次结构中的一个子项目受制于两个独立的Maven构建,每个构建都有自己的WAR文件。从本质上讲,我不必详细讨论与此相关的问题,该项目应该分为两个项目,每个项目都有自己的WAR,但尚未完成。PMs不会分配时间,所以我们通过运行两个单独的构建来解决问题。每个构建的特殊性由各自的POM配置文件表示

mvn clean verify-p foo使foo.war与mvn clean verify-p bar使bar.war出自同一个项目

我在做CI,我需要把这个项目简化。我安装了,但是源代码管理部分允许在相对于作业的工作区根目录的目录中签出本地代码库,并且每个作业只允许一个mvn构建。这就让我可以选择拥有两个独立的作业,每个作业都检查自己的本地代码库快照,这是一种过分的做法

如果有一种方法可以让foo作业签出到一个目录中,该目录不在其工作区内部,bar也可以访问该目录,该目录将不使用SCM,而是假设源代码通过不同的方式存在,在本例中,通过job foo或手动方式存在,我可以用相同的物理签出源代码运行我的第二个构建,而不必重新进行构建。除了可能以某种方式使one Jenkins作业能够运行多个构建之外,这只是我想到的一种方法,但我认为这不是一种选择


我正在寻找如何在Maven Jenkins插件中解决这个问题的方法,而不是将我的工作作为Jenkins freestyle进行不可知论。

您可以创建一个上游工作,从SVN检查src。此作业触发两个不同的mvn下游作业-将父作业的工作区作为参数传递给此作业。在子流作业中,必须使用此参数作为自定义工作空间

在jenkins中,当我没有完全错误时,您可以在SCM选项上方的高级选项中指定作业的工作区-当前没有jenkins实例来检查此问题

编辑: “自定义工作空间”选项位于下面“高级选项”的“常规”部分中,它限制了此项目的运行位置,称为“使用自定义工作空间”。
如果这不适用于您,则有一个名为shared workspace的插件可用,但实际上在您的情况下不需要该插件。

因此下游作业将不会使用SCM-但我找不到您所指的高级选项,如果我使用的是现有的而不是签出,我将在其中指定工作区源代码位置我想我找到了-它在Build部分,SCM插件有没有办法在Jenkins工作区之外的目录位置检查代码库?正是这个自定义工作区。你可以给詹金斯一条任意的路径。