TeamCity 2020.1 Help

Configuring Maven Triggers

The Triggers page of the Build Configuration Settings allows you to add the following Maven dependency triggers:

Checksum Based Triggering

The trigger checks if the content of the dependency has actually changed by verifying its checksum from the repository against the locally stored version. Before triggering a build, TeamCity tries to determine the checksum of the required dependency by downloading the file digest (MD5/SHA-1) associated with that artifact.

If the checksum can be retrieved, and it matches a locally stored one, no build is triggered. If the checksum is different, a build is triggered.

If the checksum cannot be retrieved from the remote server, the dependency will be downloaded, TeamCity will calculate its checksum and follow the build triggering mechanism described above.

Maven Snapshot Dependency Trigger

Maven snapshot dependency trigger adds a new build to the queue when there is a real modification of the snapshot dependency content in the remote repository which is detected by the checksum change.

Dependency artifacts are resolved according to the POM and the server-side Maven Settings.

Maven Artifact Dependency Trigger

Maven artifact dependency trigger adds build to the queue when there is a real modification of the dependency content which is detected by the checksum change.

To add a trigger, specify the following parameters in the Add New Trigger dialog:

Parameter

Description

Group Id

Specify an identifier of a group the desired Maven artifact belongs to.

Artifact Id

Specify the artifact's identifier.

Version or Version range

Specify a version or version range of the artifact. The version range syntax is described in the section below. SNAPSHOT versions can also be used.

Type

Define explicitly the type of the specified artifact. By default, the type is jar.

Classifier

(Optional) Specify the classifier of an artifact.

Maven repository URL

Specify a URL to the Maven repository. Note that this parameter is optional. If the URL is not specified, then:

  • For a Maven project the repository URL is determined from the POM and the server-side Maven Settings

  • For a non-Maven project the repository URL is determined from the server-side Maven Settings only

Do not trigger a build if currently running builds can produce this artifact

Select this option to trigger a build only after the build that produces artifacts used here is finished.

Advanced Options

Since TeamCity 9.0, the following advanced options have been added to the trigger:

Parameter

Description

Repository ID

Allows using authorization from the effective Maven settings

User settings selection

Allows selecting effective settings. The same as User Settings of the Maven runner.

TeamCity determines the effective repository to be checked for the artifact updates and to trigger builds if changes are detected as follows:

  • if a URL and Repository ID are set, authentication will be chosen from the effective settings (see below)

  • if only a URL is set, the old behavior is preserved: a temporary repository ID is used ("_tc_temp_remote_repo")

  • if URL is not set (regardless of the Repository ID), the artifact will be looked up in a repository available according to the effective settings.

TeamCity determines effective settings as follows:

  • in the trigger settings a user can choose among the default, custom or uploaded Maven settings. See Maven Server-Side Settings for details.

  • if no specific settings are configured for the trigger, Maven build step settings are used

  • if no settings for the trigger are configured and there are no Maven build steps, the default server Maven settings will be used.

Version Ranges

For specifying version ranges use the following syntax, as proposed in the Maven documentation.

Note that Maven Artifact Dependency Trigger can be used not only for fixed-version artifacts but also for snapshots as a fine-grained alternative to the Maven Snapshots Dependency Trigger.

Range

Meaning

(,1.0]

x <= 1.0

1.0

"Soft" requirement on 1.0 (just a recommendation - helps select the correct version if it matches all ranges)

[1.0]

Hard requirement on 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 or x >= 1.2. Multiple sets are comma-separated

(,1.1),(1.1,)

This excludes 1.1, if it is known not to work in combination with this library

1.0-SNAPSHOT

The trigger will check the latest snapshot version for updates

Last modified: 19 October 2020