为Jenkins

时间:2017-03-19 15:21:50

标签: svn jenkins version-control

我在SVN中有一个父项目,它有一个父POM。 并且在给定的父文件夹中有几个子项目。 父POM构建所有子项目。

现在我正在设置Jenkins的所有版本,我想实现以下目标。

  1. 我应该能够为每个子项目文件夹提供任何svn修订版。
  2. 父文件夹将基于最新的svn修订版。
  3. 为了实现上述目标,我尝试了一些调整,但它似乎无法发挥作用。

    我所做的是:

    1. 为每个子项目添加了Jenkins String Parameter。在这里,我将修订号作为变量传递给模块的源代码管理。 (我为每个子项目添加了几个带有特定svn url的模块。)
    2. 对于每个子项目,我创建了Jenkins List Subversion Tags。此变量用于在构建时传递子文件夹名称。
    3.   

      事情,假设某个特定项目我将修订号作为参数传递,并将其他参数字段保留为空白(同样将父文件夹保留为空白);会发生什么是Jenkins首先检查特定子项目的正确修订。但在此之后再次进行另一次更新并检出所有子文件夹的最新文件。

           
          

      我的项目所有者希望根据他们想要在生产中发布的内容为不同的项目选择不同的修订。

        

      我对如何实现这一点非常困惑。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

如果我理解这是正确的,你的项目看起来像这样:

- toplevel-project -> HEAD
--subproject 1 -> REV A
--subproject 2 -> REV B
--subproject x -> REV X

你有没有尝试过结账的深度?这实际上应该有效。因此,首先只需要文件(深度"文件")检查HEAD的toplevel-project。然后,将子项目签出到特定修订版本的同一文件夹中。但是这种方法取决于项目结构在存储库中的样子。

你也可以用它的儿童和空文件夹(深度" immediates")结账父母,然后通过设置新的深度将几个孩子的深度切换到特定的修订版本子文件夹到" infinity"。但是如果subversion-plugin支持这种行为,我还没有尝试过。