I've been reading up on Gradle and its repository support features. The docs indicate it supports Ivy or Maven repos. The implications of this are not entirely clear to me.
In the case of a Maven repo, I think my understanding is more complete. When building, the local repository like Nexus or Artifactory will cache the required public dependencies form MavenCentral. For publishing, Gradle will generate a POM.xml for the project, and you can publish private artifacts back to the local repository. Is my understanding correct? I want to have control over the public dependencies being used, along with correcting mistakes in the public MavenCentral POMs.
For Ivy, I'm a little more confused. For one, what does a shared Ivy repo look like? Is it just a remote directory tree hosted over SSH, SFTP, HTTP, etc? Does this work in mixed Windows/Unix environment? How does Gradle move the public dependencies and built artifacts into the shared Ivy repo? Can Jenkins also perform this step, how? Are additional build steps necessary when the new public dependencies are defined and they need to be moved into the shared Ivy repo, or is this done seamlessly?
Finally, assuming the features of the two models are basically the same. What is the is solution to maintain along side a Jenkins build machine?