有没有人尝试过这个功能并有一些反馈?或者有谁知道一些有用的样本可以查找?
kukudas
问问题
38380 次
2 回答
27
几个月前我尝试过这个功能,但我不再使用它(只是因为我不需要它,而不是因为它不是一个好功能)。
基本上,您定义 n 轴,每个轴是具有多个值的属性。
让我们举个例子:定义轴“JDK”,可能值为“1.4”、“1.5”、“1.6”,并定义另一个属性“database”,其中可能值为“oracle”、“mysql”。
因此,Hudson 将启动您的构建 6 次:
- 使用 JDK 1.4,属性 database=oracle(即 JVM 使用 -Ddatabase=oracle 启动)
- 使用 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 作为条目给出的属性。在我的示例中,应用程序必须考虑“数据库”属性本身。最后,一个好主意是使用这个属性来启用 Maven2 配置中的特定配置文件,如果您的项目是 mavenized (有关详细信息,请参阅此处)。
我希望我的解释足够清楚:)
于 2009-01-08T14:07:56.217 回答
6
矩阵构建有许多问题:
- 与插件广泛不兼容 - 它们正在变得更好,但您需要保持最新状态。
- 人工制品 - 更难摆脱 - 网址有点尴尬,在 FS 上找到它们(无论如何你应该避免)现在是一场噩梦。
这是一个耻辱,因为这个概念非常好并且在它工作的地方非常方便。
编辑
- 无法开始单点。
我们通常的解决方法是将参数化构建设置为同时运行——这有其自身的问题,但可以避免我们有许多具有相同代码和不同常量的作业。
于 2011-06-02T16:47:32.043 回答