Hudson的经验 - 构建矩阵项目

时间:2009-01-08 13:52:33

标签: jenkins continuous-integration hudson

有没有人尝试过此功能并有一些反馈?或者有人知道一些有用的样本要查找吗?

2 个答案:

答案 0 :(得分:27)

我几个月前尝试过这个功能,但我不再使用它了(因为我不需要它,不是因为它不是一个好的功能)。

基本上,您定义n轴,每个轴都是具有多个值的属性。

让我们举个例子:你定义Axis“JDK”,可能值为“1.4”,“1.5”,“1.6”,你定义另一个属性“database”,其中可能的值是“oracle”,“ MySQL的”。

因此,Hudson将推出你的构建6次:

  • 使用JDK 1.4,使用属性database = oracle(即使用-Ddatabase = oracle启动JVM)
  • 使用JDK 1.5,属性database = oracle
  • 使用JDK 1.6,属性database = oracle
  • 使用JDK 1.4,使用属性database = mysql
  • 使用JDK 1.5,使用属性database = mysql
  • 使用JDK 1.6,属性database = mysql

然后,一旦完成所有内容,您将能够看到每次迭代的结果。

当您需要在多个环境中测试应用程序时(在我的示例中,使用不同版本的JDK或数据库),此功能可能非常有用。

请注意,除了JDK轴之外,您必须自己管理Hudson作为条目提供的属性。在我的示例中,应用程序必须考虑“数据库”属性本身。最后,如果项目是mavenized,最好使用此属性在Maven2配置中启用特定的配置文件(有关详细信息,请参阅here)。

我希望我的解释足够清楚:)

答案 1 :(得分:6)

Matrix构建存在许多问题:

  • 与插件大致不兼容 - 它们越来越好,但你需要保持最新状态。
  • 文物 - 更难以摆脱 - URls有点尴尬,在FS上找到它们(你无论如何应该避免)现在是一场噩梦。

这是一种耻辱,因为这个概念非常好,非常方便。


修改

  • 无法启动单点。

我们通常的方法是将参数化构建设置为同时运行 - 这带来了它自己的问题,但是我们可以节省许多具有相同代码和不同常量的作业。