有没有人尝试过该功能并有一些反馈?或者有人知道一些有用的样本要查找吗?
我几个月前尝试过这个功能,但我不再使用它了(因为我不需要它,不是因为它不是一个好的功能).
基本上,您定义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配置中启用特定的配置文件(有关详细信息,请参阅此处).
我希望我的解释足够清楚:)
Matrix构建有许多问题:
广泛地与插件不兼容 - 它们越来越好,但你需要保持最新.
文物 - 更难以摆脱 - URls有点尴尬,在FS上找到它们(你无论如何应该避免)现在是一场噩梦.
这是一种耻辱,因为这个概念非常好,非常方便.
编辑
无法启动单点.
我们通常的做法是将参数化构建设置为同时运行 - 这带来了它自己的问题,但节省了我们有许多具有相同代码和不同常量的作业.