构建工件
构建工件是由构建产生的文件。 通常,这些包括分发包,WAR 文件,报告,日志文件等等。 在创建构建配置时,您需要在 配置常规设置 页面指定构建工件的路径。
tip
这篇文章涵盖了基本的构建工件概念。 请参阅页面底部的文章链接,了解配置和管理工件 的详细信息。
TeamCity 包含一个集成的轻量级构建工件仓库。 艺术品要么储存在 服务器可访问的文件系统 上,要么储存在 外部存储设备 上。
在构建完成后,TeamCity 会根据指定的 工件路径或路径模式在构建 签出目录中搜索工件。 匹配的文件然后会被上传("发布")到 TeamCity 服务器,通过网络用户界面可以下载这些文件,或者可以在其他构建中使用 工件依赖项。 您可以 选择何时发布构件 :适用于所有已完成的构建,仅适用于成功的构建,或适用于所有构建,甚至是中断的构建。
要下载构建的工件,请转到构建结果页面的 Artifacts 选项卡,或使用项目或构建配置 概述 页面以及列出构建的 TeamCity 页面上提供的工件图标 。
tip
如果您正在使用 Safari 并且遇到了关于未完全下载的工件问题,请在 Safari 的常规设置中禁用 "下载后打开“安全”文件" 选项。
note
在内置存储的情况下,TeamCity 将构件保存在磁盘上的一个目录结构中,可以直接访问(例如,通过配置操作系统在网络上共享该目录)。 存储格式在 TeamCity 数据目录中有所描述。 艺术品存储在服务器上,"原样"保留,无需额外压缩。 默认情况下,工件存储在 <TeamCity Data Directory>
/system/artifacts
目录下,该目录 可以更改。
您可以 配置外部工件 存储以替换内置存储。
构建工件可以在构建仍在运行时上传到服务器。 为了指导 TeamCity 上传工件,应修改构建脚本以发送 服务消息。
您可以通过 REST API 自动化下载工件。
除了用户定义的构建工件之外,TeamCity 也会为内部目的生成并发布一些 隐藏的构建工件。
例如,对于 Maven 构建,TeamCity 会创建一个包含构建过程中收集的 Maven 特定数据的 maven-build-info.xml
文件。 文件的内容随后被用来在构建结果中的 Maven 构建信息选项卡上展示 Maven 数据。
TeamCity 在工件根目录的 .teamcity
目录中存储隐藏的工件。
工件 依赖关系 不会考虑隐藏的 artifacts,除非它们在其模式中明确指定了 .teamcity
。
除非在清理范围中明确指定了 .teamcity
,否则清理构建工件不会删除隐藏的构建工件。
隐藏工件的示例:
maven-build-info.xml.gz
— Maven 构建数据。 用于在 Maven 构建信息 选项卡上显示数据。属性
目录 - 存储在代理上为构建计算的属性。 构建前后,有一些实际的属性存在。 这些显示在构建结果的 属性 选项卡上。.NETCoverage
— 原始的 .NET 覆盖数据(例如,用于在 VS 插件中打开 dotCover 数据)。coverage_idea
— 原始的 IntelliJ IDEA 覆盖率数据(例如,用于在 IDEA 中打开覆盖率)。
隐藏的工件默认不会显示在 工件 选项卡上。 如果当前构建中有任何隐藏工件,您可以通过单击 显示隐藏的工件 来显示它们。
要浏览或单独下载构建结果,请使用构建结果的树状结构。 要下载整个 .teamcity
目录,请单击屏幕右侧的 下载所有(.zip)。
要隐藏一个工件,您需要将其发布在 .teamcity
目录下。
由构建发布的所有工件均存储在 <构建代理主目录>\system\.artifacts_cache
的代理的工件缓存中,这在某些情况下有助于加快工件依赖性的速度。
然而,取决于工件的大小, 清理以及其他设置,工件缓存可能会导致代理上的磁盘空间不足。 您可以 配置将发布的工件存储在代理缓存中。
感谢您的反馈!