Dependency triggers allow to start the build every time the build it depends on finishes successfully. Please note, that you can also use dependencies (snapshot or artifacts) to trigger your builds automatically.

From Build Triggering page you can add the following dependency triggers:

Maven Snapshot Dependency Trigger

Maven snapshot dependency trigger adds a new build to the queue when any of the snapshot dependencies is updated in the remote repository.
Dependency artifacts are resolved according to the POM and the server-side Maven Settings.

Simultaneous usage of snapshot dependency and dependency trigger for a build

{show-if:mode=edit}To avoid double excessive running of a build, if this build is dependent on another via both dependency trigger and a build chain with snapshot dependency, at the moment the build is triggered by dependency (trigger) TeamCity checks whether another build of the same build configuration has been already put into the [Build Queue] as a result of triggering a build chain with snapshot dependency. If such build exists, a build that should be triggered by dependency will _not_ be started.
Example:{show-if}

Assume build A depends on build B by both snapshot and trigger dependency. Then after the build B finishes, build A will be added in the queue, only if build B is not a part of build chain containing A.

Maven Artifact Dependency Trigger

Maven artifact dependency trigger adds build to the queue when specified Maven artifact changes.
To add such trigger, specify the following parameters in the Add New Trigger dialog:

Parameter

Description

Group Id

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

Artifact Id

Specify the artifact's identifier.

Version or Version range

Specify version or version range of the artifact. The version range syntax is described in the table below.

Type

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

Maven repository URL

Specify 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

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

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

{show-if:mode=edit}Mathematical syntax chosen to avoid the use of {{\-}} as it would conflict with what is used in many version number, and because < and >= doesn't look nice in XML. (,1.0\] is used because infinity is not really helpful here. \\
Default strategy: Of the overlapping ranges, the highest soft requirement is the version to be used. If there are no soft requirements inside the prescribed ranges, the most recent version is used. If that does not fit the described ranges, then the most recent version number in the prescribed ranges is used. If the ranges exclude all versions, an error occurs. \\
Addition of ranges leads to additional necessary specifications on the dependency element. {show-if}