Hello guys, i've been trying to setup up a very simple project with maven snapshot dependency trigger and come across some very stupid problems :) So here is the story:
- Maven projects
- Parent pom with common settings
- Some gwt component
- Some webapp that includes gwt component
- I have a Nexus maven repository with following setup:
- my.app.snapshots - my hosted repo for my snapshots
- Several proxy repos - for proxying cental and other repos
- my.app.group - repo group that unites all these repos
- Maven pom's:
- Parent pom contains a my.app.snapshots repo in distribution management section
- Parent pom doesn't contain repositories section. Instead settings.xml holds mirrorOf=* record using my.app.group as a target
- gwt and webapp components doesn't have distribution management or repositories sections (just inherit these from parent)
- Teamcity configs:
- 3 configs - one for each component. Each has a maven snapshot dependency build trigger.
- When gwt component is actually redeployed to Nexus - build for webapp is not started.
Somehow after some experiment i've found that if repositories section is listed in each pom explicitly - trigger works fine. However if repositories section is only added to parent pom - it doesn't work. More strange - if repositories section is added to parent pom and webapp, but not added to gwt component - it still doesn't work (well in fact i'm not sure that i haven't missed something in this case).
So questions are:
- What repository exactly do Teamcity watch to determine if snapshot dependencies have been updated? All repos in the repositories section in pom? Repo in the distribution management section? What about release/snapshot flags in pom for these repos?
- What if repos listed in pom are overriden by the settings.xml mirrorOf?
- Should repositories section be inherited correctly from parent pom or it must always be specified explicitly?
- Dependency on parent pom artefact is not considered an ordinary snapshot dependency in this case? No build triggering?