本指南将介绍如何使用 TeamCity 构建 Java 和 Maven 项目,适合完全没有接触过 TeamCity 的开发者。
前提
我们建议您对 Java 和 Maven 框架有基本的了解。 有关更多信息,请参阅 Maven 文档中的Maven 入门指南。
如果 TeamCity 成功连接到您的仓库,您将看到以下对话框。
在 Create Project From URL 对话框中,您可以选择更改项目名称和初始构建配置名称。
注意:在较新版本的 TeamCity 中,您还将看到 Default branch 和 Branch specification 字段,用于指定 TeamCity 应构建的分支。 这可暂时忽略。
点击 Proceed 后,TeamCity 会自动扫描您为支持的技术(在本例中为 Java 和 Maven)使用的版本控制仓库。
如果 TeamCity 在您的仓库中检测到 pom.xml 文件,它将自动为您的项目建议构建步骤,包括编译您的 Maven 项目并通过执行 mvn clean test 运行其测试。
构建步骤不应与构建配置混淆。 构建配置可能包含许多构建步骤。
现在,您已经成功使用 TeamCity 配置您的 Maven 仓库:
现在,您的 Maven 仓库已连接到 TeamCity,您可以继续开发并将代码推送到您的仓库。
默认情况下,TeamCity 每隔 60 秒轮询一次 VCS 仓库的主分支以获取传入更改,并为所有检测到的提交触发一个(组合)构建。
如果您想让仓库中任意分支的每次更改(而不仅仅是主分支)都触发构建,应将通配符分支规范添加到您的 VCS 根设置。 请注意,VCS 设置属于 TeamCity 项目,而不属于单个构建配置。 因此,您所做的任何更改都将应用于使用相同 VCS 根的所有构建配置。
示例分支规范:
+:refs/heads/* – TeamCity 将检查项目所有分支中的更改,但不会检查 GitHub 等平台上的 Pull Request,因为其与 refs/pull/* 匹配。 +:* – TeamCity 将检查任何分支上的任何传入更改。 TeamCity 现在将监控所有符合您的分支规范并推送到您的仓库的分支,检查传入的更改,并相应地运行构建。
如果您希望 TeamCity 针对您的仓库自动构建 Pull Request,可以将 Pull Request 构建功能添加到您的构建配置。
注意:Pull Request 构建功能会透明地扩展分支规范(更多信息见上一步)。 例如,对于 GitHub,Pull Request 功能将(不可见地)把 +:refs/pull/* 添加到您的分支规范。
我们建议在使用 Pull Request 功能时,确保 Pull Request 分支不在您的通用分支规范内,否则 Pull Request 相关功能在 TeamCity 中将不可用。
TeamCity 现在将检查外部平台的 Pull Request,并为符合您的配置规则的请求触发构建。
注意:如果在公共仓库上,您应谨慎使用此功能,因为任何人都可能将有害代码推送到仓库(您显然不想构建这样的代码)。
当结合使用Azure DevOps、Bitbucket Server、GitHub或GitLab中的拉取请求功能时,使用提交状态发布构建功能也很有意义。 此功能将在相应平台上以构建结果更新 Pull Request 的状态。
要将 TeamCity 设置为向 GitHub 报告构建结果,您需要执行以下步骤:
TeamCity 运行构建后,您可以直接从 GitHub 的 Pull Request 标签页(绿色复选标记)轻松查看更改是否导致构建失败。 会包含一个返回您的 TeamCity 服务器的链接,方便您浏览测试结果。