first of all I have to say that I'm very happy about the fact that
JetBrains decided to include Ivy as dependency manager in TeamCity, but
the integration is IMHO far from perfect (or in my case far from being
All of my modules contain ivy.xml files. As of now TeamCity just
plain ignores them and generates it's own ivy.xml. As a result of that
all the dependencies that the module has by itself are ignored.
If an ivy.xml file exists in the same directory as the build.xml file
(for instance) use the organization and module values declared in that
file instead of this cryptic build identifier (bt*).
Ivy is very powerful and using chain resolvers one can easily cascade
different repositories. Say I've my release builds in a repository of
it's own and want to switch to a CI build of a specific module for
further development. If TeamCity would reuse existing organization &
module declarations all I would have to do is change the rev attribute
from say "latest.release" to "latest.lastFinished". Ivy then could
automatically resolve this module dependency from the TeamCity repository.
Another annoyance is the revision number in the ivy.xml file
generated by TeamCity. "13.lastFinished" for instance is absolutely
unnecessary. "lastFinished" is already set as the status of the build.
It doesn't have to pollute the revision number.
One last thing... The access to the integrated ivy repository seems
not to be protected. So if anybody runs a TeamCity server on the
internet the Ivy repository is accessible by anyone.