TeamCity On-Premises 2024.03 Help

配置 Maven 触发器

Triggers 页面位于 Build Configuration Settings,您可以在此添加以下与 Maven 相关的触发器:

基于校验和的触发器

触发器检查依赖项的内容是否真的发生了变化,方法是通过验证其在存储库中的校验和与本地存储的版本进行对比。 在触发构建之前,TeamCity 试图通过下载与该构件关联的文件摘要(MD5 / SHA-1)来确定所需依赖项的校验和。

如果可以检索到校验和,并且与本地存储的校验和匹配,则不会触发构建。 如果校验和有所不同,就会触发构建。

如果无法从远程服务器检索校验和,依赖项将会被下载,TeamCity 将计算其校验和,并遵循上述的构建触发机制。

Maven Snapshot 依赖触发器

Maven 快照依赖触发器在远程仓库中的快照依赖内容发生实际修改时,会通过检测校验和变化将新的构建添加到队列中。

依赖项工件是根据 POM 和服务器端的 Maven Settings 进行解析的。

Maven Artifact 依赖触发器

Maven 工件依赖触发器在通过校验和变化检测到依赖内容真实修改时,将构建添加到队列中。

要添加触发器,请在 Add New Trigger 对话框中指定以下参数:

形参

描述

组 ID

指定所需 Maven 工件所属的组的标识符。

构件 ID

指定工件的标识符。

版本或版本范围

指定工件的版本或版本范围。 版本范围语法在下面的 部分 中有所描述。 SNAPSHOT 版本也可以使用。

类型

明确定义指定工件的类型。 默认情况下,类型是 jar

分类器

(可选)指定工件的分类器。

Maven 仓库 URL

指定到 Maven 仓库的 URL。 请注意,此参数是可选的。 如果未指定 URL,则:

  • 对于 Maven 项目,仓库 URL 是从 POM 和服务器端的 Maven Settings 中确定的。

  • 对于非 Maven 项目,仓库 URL 仅从服务器端的 Maven Settings 中确定。

如果当前正在运行的构建可以生成此工件,那么请不要触发构建

选择此选项将在生成此处使用的构件的构建完成后才触发构建。

高级选项

形参

描述

仓库 ID

允许使用有效的 Maven 设置中的授权

用户设置选择

允许选择有效的设置。 与 Maven runner 的 User Settings 相同。

TeamCity 通过以下方式确定用于检查工件更新和触发构建(如果检测到更改)的有效仓库: 实际的存储库

  • 如果已设置 URL 和 Repository ID,将从有效设置中选择认证(参见下文)

  • 如果只设置了 URL,将保留旧的行为:使用临时仓库 ID ( _tc_temp_remote_repo)

  • 如果未设置 URL(无论仓库 ID 如何),将根据有效设置在可用仓库中查找工件。

TeamCity 按照以下方式确定 有效设置

  • 在触发设置中,用户可以在默认、自定义或上传的 Maven 设置中进行选择。 参见 Maven 服务器端设置 以获取详细信息。

  • 如果没有为触发器配置特定设置,将使用 Maven 构建步骤设置。

  • 如果没有为触发器配置设置,并且没有 Maven 构建步骤,将使用 默认 服务器 Maven 设置

版本范围

要指定版本范围,请使用以下语法,如 Maven 文档中所提议的

请注意,Maven Artifact Dependency Trigger 不仅可以用于固定版本的 artifacts,而且也可以作为精细的替代方案用于快照,以替代 Maven Snapshots Dependency Trigger。

Range

含义

(,1.0]

x <= 1.0

1.0

"对 1.0 的"软"要求(只是一个建议 - 如果它匹配所有范围则有助于选择正确的版本)

[1.0]

对 1.0 的硬性要求

[1.2,1.3]

1.2 ≤ x ≤ 1.3

[1.0,2.0)

1.0 <= x < 2.0

[1.5,)

x >= 1.5

(,1.0],[1.2,)

x <= 1.0 或 x >= 1.2. 多个集合用逗号分隔

(,1.1),(1.1,)

如果已知1.1与此库不能一起使用,则将其排除在外

1.0-SNAPSHOT

触发器将检查最新快照版本的更新

触发构建自定义

触发器设置中的 Build Customization 标签允许配置由此触发器启动的构建的自定义参数。 与 Run Custom Build 对话框类似,它让您可以覆盖 构建参数 的值,并选择是否在构建前清理 检出目录

在此选项卡中,您可以自定义当前构建配置中使用的任何参数的值。 或者,您可以添加一个新的参数,它将仅在由此触发器启动的构建中可用。 如果当前构建对其他构建有快照依赖,这样一个参数也可以用来覆盖依赖构建配置的某个属性:使用这个 reverse.dep.<dependencyBuildID>.<property> 语法。

请注意,如果您在触发器中重新定义了构建参数,然后在 参数 中删除了原始参数,那么它的重新定义值将被转换为触发器自己的纯文本参数。 在定制安全值时,这一点至关重要,因为只有与 "Password" 类型 一起存储时,它们才会被隐藏,如果转化为纯文本,它们将变得可读。

TeamCity 允许以多种方式解决类似的任务,在某些情况下,仍然优先创建不同的构建配置。 例如,如果在同一配置中有太多自定义运行,那么 TeamCity 预测每次构建的确切持续时间可能会更加困难。 如果您需要触发带有大量不同参数的构建,我们建议您创建一个 构建配置模板,并将其用作各种配置的蓝图,每种配置都有其自己的参数。

最后修改日期: 16日 7月 2024年