Host gradle wrapper distributions on maven central


(kevin.stembridge.dev) #1

Hi folks, We’ve started using gradle wrapper in our projects but our build machine doesn’t have access to the internet and therefore the wrapper can’t download the gradle distribution. The build machine pulls dependencies from an internal Nexus repository that pulls from Maven central.

Have you considered hosting your wrapper distributions on Maven central?

Cheers, Kevin


(Peter Niederwieser) #2

There aren’t any plans to publish Gradle artifacts or distributions to Maven Central. You can of course publish Gradle distributions to your Nexus repository (and many companies do).


(René Groeschke) #3

I know from at least one company, that redirects the wrapper to their internal nexus, which has a configured repository pointing pointing to “services.gradle.org” with a custom pattern. Important for that setup is, that the „archetype-catalog.xml“ remote lookup is disabled.

hope that helped. cheers, René


(kevin.stembridge.dev) #4

Hi chaps, Thanks for the suggestions. We managed to work around it by pointing to a proxy using GRADLE_OPTS.

I still think you should consider publishing to Maven central though. I’m sure that all the companies that apply some kind of workaround would prefer not to have to do so at all.

Don’t underestimate the value that developers place on convenience.


(Peter Niederwieser) #5

Instead of a GRADLE_OPTS/proxy solution, I’d publish the Gradle distro to your Nexus and point ‘gradle-wrapper.properties’ at it. Publishing to Maven Central has been discussed at length, but a decision has been made against it, and I don’t see this being revisited any time soon.


(Sion Williams) #6

All,

I got all excited when I seen we could use Nexus as a proxy, but the detail on how to do it isn’t in this thread (or on the net for that matter). Any help or direction on implementing this would be great.

Regards, Sion


(Peter Niederwieser) #7

Using Nexus as a proxy for what? The Gradle distribution? Explained in this thread. General dependency resolution? Declare it as a Maven repository. See user guide for how to declare repositories.


(Sion Williams) #8

I would like our users to connect to our Nexus URL instead of http://services.gradle.org/distributions. We want Nexus to connect and pull the relevant zip and store locally. I’ve not seen anywhere in the Nexus documentation that explains this - I realise this isnt a Gradle issue. I was more curious to see if someone had experience in getting this to work.


(Peter Niederwieser) #9

http://services.gradle.org/distributions’ is not a Maven repo, so you probably won’t be able to proxy it in the classical (Nexus) sense. Instead, you need to publish Gradle distribution zip(s) to Nexus yourself, manually or with a script. Then set the URL entry in ‘gradle-wrapper.properties’ accordingly.


(aaarnett) #10

In the enterprise environment being able to pull through a proxying,mirroring,local repository to simplify managment of proxies, speed downloads/setup and reduce bandwidth without having to manually manage every new version is essential. Choosing not to support it really seems like you’re shooting yourselves in the foot for your target audience.

Is there a discussion thread somewhere that explains the decision to not support maven repos as a distribution vehicle? Getting started with the gradle wrapper and this issue stands out like a sore thumb.