Maven Dependency Trigger and self generated Maven Artifacts
Hello,
In our Teamcity instance, we have over 2400 projects, 1800 of which are configured with triggers.
All are maven projects whose artifacts are stored in a internal Nexus repository.
When a project dependency is built inside Teamcity, we want the projects who depends on it to automatically start building.
We're using the "Maven Snapshot Dependency Triggers", but with 1800 projects, each having 5-10 dependencies, this put a lot of stress on our Nexus server every minutes.
Why we picked the 'Maven Snapshot Dependency Trigger" was because it was self configured. It would scan the pom file, detect dependencies, and start looking for them, disregarding of the dependencies are also built by Teamcity or by some other builder.
What we would like is for Team City to detect artifacts that have been built by him, and find who use those dependencies. However, I cannot see anything that come with auto configuration.
The "Finish Build Trigger" requires you to to select a specific build, thus forcing build to be injected in Team City in a particular order and manually pick each build and knowing which dependencies those build generate. And to be honest, I'm not even sure, with the wording, which direction this trigger work (does it trigger other build, or is it trigger BY other build).
Then there is the chain dependencies, but again, all require the same manual setup as the "Finish Build Trigger"
Is there a way to have Team City be aware automatically of which maven artifact a build produce and which other build depend on them, and automatically launch those build? The builds already have the maven information, wouldn't it be possible to automate all the internal dependencies management or have a trigger that take those into consideration?
Please sign in to leave a comment.
Hello Philippe,
Thank you for your feedback. What you describe sounds like a perfectly reasonable feature request. Would you mind posting it to our issue tracker here https://youtrack.jetbrains.com/issues/TW ?
As a workaround, there is a way to reduce load on Nexus instance by increasing dependencies check interval.
Please set internal property to desired value (in seconds, default is 60)
teamcity.maven.artifactTrigger.checkInterval = 300
You can edit internal.properties via WebUI or directly on disk. Restart the server afterwards.
Thanks and done
https://youtrack.jetbrains.com/issue/TW-49121
And I'll use teamcity.maven.artifactTrigger.checkInterval in the meanwhile to alleviate some of the load (too bad those trigger cannot be run sequentially with throttling).
Is there any particular reason this property isn't in the "Configuring Maven Triggers" Confluence page?
Thank you for the request.
Well, this property is considered a "debug" one, needed for in limited number of cases. TeamCity already has too many options and settings :)