如何在 TeamCity 中的 VCS Root 之间切换
How to switch between VCS Roots in TeamCity
在版本控制设置选项卡中我可以添加多个VCS Roots。但是我该如何指定使用哪一个呢?
例如我配置了两个 VCS Roots - A 和 B.
在第一个构建步骤中,我想从 A 部署代码,在第二个构建步骤中,我想从 B 部署代码.
当我编辑 Maven 构建步骤时,我没有看到任何如何在 VCS 根之间进行选择的选项。
我该如何实现?
我不认为这是他们的工作方式。当您添加两个 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
在版本控制设置选项卡中我可以添加多个VCS Roots。但是我该如何指定使用哪一个呢?
例如我配置了两个 VCS Roots - A 和 B.
在第一个构建步骤中,我想从 A 部署代码,在第二个构建步骤中,我想从 B 部署代码.
当我编辑 Maven 构建步骤时,我没有看到任何如何在 VCS 根之间进行选择的选项。
我该如何实现?
我不认为这是他们的工作方式。当您添加两个 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