【问题标题】:Teamcity deployment to another server via sshTeamcity 通过 ssh 部署到另一台服务器
【发布时间】:2015-11-06 03:24:27
【问题描述】:

我正在尝试使用 teamcity 部署插件通过 ssh 将我的构建结果(war 文件)发送到网络中的另一台计算机。 我的问题是如何配置部署程序来找到我构建的战争文件。 我在 Artifacts 路径设置中使用了 %teamcity.build.workingDir%**/*.war,但在其中找不到任何文件。

日志显示它试图在 /home/teamcity/TeamCity/buildAgent/work/c4bca27d2b00a6fe**/*.war 找到我的文件。

路径是正确的,但它不起作用...

Accessing Build Artifacts 的 teamcity 文档不清楚,并且没有显示我应该在设置对话框中使用什么。

更新:

我尝试使用 **/mywar-1.0.war 和 **/build/libs/mywar-1.0.war,两者都有效,但现在的问题是,它使用 dest/build/ 之类的子目录部署文件libs/mywar-1.0.war

但我需要 dest/mywar-1.0.war, 所以还是不知道怎么配置...

【问题讨论】:

    标签: plugins deployment ssh teamcity war


    【解决方案1】:

    Teamcity 部署器插件,使用模式作为工件路径来查找要部署的文件,在大多数情况下,正如@Vlad 所说,使用**/*.fileType**/filename.type 就足够了,

    例如:**/*.war**/myprojectfile.war

    但有时您的输出文件位于子目录树中,因此部署程序使用模式案例在目标上创建这些子目录。 在这种情况下,我只需要没有子目录的war文件,因此正确的方法是使用该文件的完整路径。

    例如: 我的战争文件在构建过程后位于build/libs/ 文件夹中

    所以使用build/libs/mywar.war 作为 Artifacts 路径,会将战争部署到没有其子目录的目的地。

    【讨论】:

      【解决方案2】:

      在结帐目录as documentation says 下解析的工件,所以只需**/*.war 就足够了。

      【讨论】:

      • 使用该命令将所有我不想要的war文件部署到构建项目中,我只需要其中一个。
      • 您的原始问题包含**/*.war,所以我的回答也是如此。关于目录更改,请尝试**/myname-1.0.war => dest/
      • 我试过这个**/mywar-1.0.war => dest/,得到了这个dest/build/libs/mywar-1.0.war!?还有什么想法吗?
      • /build/libs/mywar-1.0.war => dest/ ? :)
      • 感谢您的帮助,我找到了答案,所以我会在这里发布以帮助其他可能遇到同样问题的人。
      猜你喜欢
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多