替换TeamCity中的工件路径

时间:2017-01-26 09:26:15

标签: maven continuous-integration teamcity

我有一个由teamcity构建的多模块maven项目。这是有效的,产生的工件是:

/core/target/core-system-1.2.3.war
/plugins/plugin-a/target/plugin-a-1.2.3.jar
/plugins/plugin-b/target/plugin-b-1.2.3.jar
/plugins/plugin-c/target/plugin-c-1.2.3.jar
/plugins/...

目前,在常规设置下使用此工件收集工件:

core/**/target/*.war => dist/core
plugins/**/target/*.jar => dist/plugins

所以,我在dist - 文件夹中有所有需要的文件(之后它们通过ssh被推送到部署服务器)。但是,teamcity会保留" target" -folder(这里也会提到[1]):

/dist/core/target/core-system-1.2.3.war
/dist/plugins/plugin-a/target/plugin-a-1.2.3.jar
/dist/plugins/plugin-b/target/plugin-b-1.2.3.jar
/dist/plugins/plugin-c/target/plugin-c-1.2.3.jar

我需要从结果中删除target目录:

/dist/core/core-system-1.2.3.war
/dist/plugins/plugin-a/plugin-a-1.2.3.jar
/dist/plugins/plugin-b/plugin-b-1.2.3.jar
/dist/plugins/plugin-c/plugin-c-1.2.3.jar

有很多插件,它们会不时发生变化,所以我不想用静态路径来定义它们。因此,使用plugins/plugin-a/target/*.jar => dist/plugins/plugin-a是可能的,但不可行。

那么,如何从工件路径中删除target目录,而不选择不在target目录中的其他jar?

[1] https://confluence.jetbrains.com/display/TCD10/Configuring+General+Settings#ConfiguringGeneralSettings-artifactPaths

TeamCity是10.0.4

1 个答案:

答案 0 :(得分:0)

你有没有试过这样的事情:

core/**/target*/*.war => dist/core 
plugins/**/target*/*.jar => dist/plugins

根据TeamCity文档,您引用了它:

  

[..]也就是说,TeamCity将从模式中第一次出现通配符开始创建目录。