【问题标题】:How to switch between VCS Roots in TeamCity如何在 TeamCity 中的 VCS Root 之间切换
【发布时间】:2016-06-09 17:32:59
【问题描述】:

版本控制设置选项卡中,我可以添加多个VCS Roots。但是如何指定使用哪一个呢?

例如,我配置了两个 VCS Root - AB

在第一个构建步骤中,我想从 A 部署代码,在第二个构建步骤中,我想从 B 部署代码。

当我编辑 Maven 构建步骤时,我看不到任何如何在 VCS 根之间进行选择的选项。

我该如何实现?

【问题讨论】:

    标签: teamcity


    【解决方案1】:

    我不认为这就是他们的工作方式。当您添加两个 VCS 根时,将检出两个根中的代码。然后,您可以在签出时访问代码。所以构建步骤 A 可以只使用一个根的代码和另一个根的步骤 B。

    如果您希望将每个根目录中的代码放在单独的文件夹中,那么您可以编辑该项目中根目录的签出规则以执行以下操作:

    +:. => RootA
    

    以便将代码签出到名为 RootA 的根签出目录的子文件夹中

    你可以对另一个根做类似的事情,这样两个根的代码都在不同的文件夹中,否则它们都将被检出到根检出目录

    例子:

    RootA vcs 包含此代码结构

    SomeFolder
        SomeSubFolder
            pom.xml
    AnotherFolder
    

    RootB vcs 包含这个结构

    SomeOtherFolder
        pom.xml
    

    当您有一个同时具有 vcs A 和 B 的项目时,TeamCity 会检查这个:

    RootCheckoutDir
        SomeFolder
            SomeSubFolder
                pom.xml
        AnotherFolder
        SomeOtherFolder
            pom.xml
    

    因此,在您的构建步骤中,您必须为步骤 A 提供路径

    RootCheckoutDir\SomeFolder\SomeSubFolder\pom.xml
    

    并在您的其他步骤中提供此路径

    RootCheckoutDir\SomeOtherFolder\pom.xml
    

    【讨论】:

    • 但是我如何告诉构建步骤 A 使用来自一个根的代码并告诉构建步骤 B 使用来自另一个根的代码?如何在 Maven 构建步骤中执行此操作?
    • 如果步骤 A 是编译步骤,只需告诉它从从 RootA vcs 签出的路径编译代码
    • 但是如何告诉 Maven Build Step 使用来自根 A 的 pom.xml?
    • 好的。现在它对我来说变得更清楚了。但是如果我有这样的存储库结构怎么办: Repo 1: /root/pom.xml Repo 2: /root/pom.xml 原来在一个目录中会有两个 pom.xml。如何使用这个?是否可以告诉 root A 在一个目录中结帐而 root B 在另一个目录中结帐?
    • 是的,请参阅答案顶部附近。对于每个根,您需要配置检出规则以告诉 Teamcity 将代码检出到子文件夹,如下所示:+:. => RootA
    猜你喜欢
    • 1970-01-01
    • 2014-06-23
    • 2012-11-08
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多