我使用Jenkins作为.NET / C ++ Windows产品的构建环境。 Jenkins Project A将主要源代码编译为工件。项目B构建安装程序。项目A中的工件具有与在项目B中构建安装程序所需的目录结构不同的目录结构。
我尝试使用Copy Artifact Plugin 从项目A复制到B,但是有known limitation我无法为副本指定不同的目录结构。
我在Project B中使用NAnt脚本来构建安装程序。我认为下一个最好的方法是将项目A工件从NAnt脚本复制到我需要它们的位置。是否可以从NAnt脚本中引用项目的工件,以便可以复制它们?
答案 0 :(得分:1)
如果您的Project B
期望某个结构中的工件,那么Project A
应该在该结构中提供它们。正如您所提到的,存档工件构建后操作不允许您为工件指定替代位置,但它确实在存档时保留其相对结构。
因此,在Project A
中,在构建步骤之后(或在其中,取决于您如何调用它),在 存档工件之前组织工件执行。
您可以编写一个简单的脚本,它将获取您的构建工件,并将它们复制到一个离散/唯一文件夹下,让我们将其称为release
文件夹。然后告诉存档工件构建后操作,仅存档release
文件夹,例如path\to\release\*.*
您的脚本可以在release
文件夹中组织适合Project B
的结构中的工件。
Project B
,并将{strong>复制工件保留在Project A
中,然后在{{1}上运行脚本}它会将它们移到一个,比方说Project B
文件夹中,然后将该文件夹提供给for_installer
的打包过程
至于"参考"工件:复制工件插件将复制特定构建的工件(按编号或标签)。它默认为归档工件的位置(在"来自"部分)和Project B
(在"到"部分)。在上面的示例中,如果您的WORKSPACE
将工件组织到Project A
文件夹中,并将其归档为release
,那么在复制工件步骤中,设置& #34;要复制的文物"作为path\to\release\*
,并离开"目标目录"空白直接放在工作区中,或指定目录