spring-projects/spring-boot — pull request #1361 by jbaruch (2014-08-11 07:21:22+00:00)
Title: Migrate from Maven Central to Bintray's JCenter

Those are two small changes just a placeholder for a discussion, really. @philwebb, @gregturn, @joshlong, @rwinch and who's not are welcome to join :)
This is the follow up on [this twitter conversation](https://twitter.com/springboot/status/497752438460264449) which started when during one of the maven central f*ck-ups @springboot proposed users to temporary use repo.spring.io. I asked why not suggesting permanently use jcenter, and then it all started :)

So, here are some of my points:

1. Maven Central is limiting. Only jars, only releases. As you all know, Spring projects are more than release jars in central. Only by browsing boot project to find a nice place to spark a discussion I found references to:
- jboss repo
- spring.io milestones and snapshots repo
- zip files in spring.io

I bet it's just a start, and you know better. All those are already on Bintray (or should be on Bintray - the zip files are excluded without any proper reason ATM).
The configuration can be greatly simplified.

2. All the spring platform [is released on Bintray](https://bintray.com/spring/jars/) before it is released on Central. Bintray releases aren't affected by the horrible oss.sonatype.org release platform process. Once the release is on Bintray, jcenter users can start consume it right away even if you (or us) are still struggling with the sync to Central.

3. Bintray gives the users much more in terms of metadata. Just compare how [Spring repository looks like in Bintray](https://bintray.com/spring/jars) to how [it looks in central](http://repo1.maven.org/maven2/org/springframework/). And that's even when no-one actually takes care of Bintray's spring repo (in terms of adding metadata - description, screenshots, links etc.) Once you will start publicizing your Bintray repository, people will start following the packages (getting notifications about new releases), rating and reviewing content, sharing in on twitter, etc, etc.

4. Bintray is CDN-ed much better than Maven Central. While in the States we get similar performance, other places in the world will get much faster downloads.

Now to reply couple of points I saw against that move:

1. Gradle 1.7 with `jcenter()` support was released more than a year ago. In the terms of innovating software (like Spring plaftorm and Gradle build tool) that's ages ago.
2. You for sure won't be the first or only one who rely on jcenter for dependencies:
- Android Studio generates new projects with `jcenter()` as the only repository
- Groovy `Grab` resolves from jcenter as the first repository in the chain
- next sbt version will have jcenter as a first-class resolver (hopefully a step to making it default, they suffer from Maven Central as well).
- etc.
3. Although it's backed-in in Maven, even in your own examples you add repositories to `pom` files (which is [a bad idea even according to Sonatype](http://blog.sonatype.com/2009/02/why-putting-repositories-in-your-poms-is-a-bad-idea/)) and/or provide sample/template `settings.xml`. That means you expect the users to deal with their repositories. That's a good thing. People should make reasonable choices about the source of their dependencies. If you already instruct the user to edit one's `settings.xml`, suggesting to use jcenter makes perfect sense of all the other reasons I listed.