Publishing multiple artifacts to plugin registry

Good afternoon,

We want to open source an internal plugin which includes 3 different parts:

  • Core library (used by other 2 parts, plus can be used to develop plugins for other build tools)
  • Back end application
  • Gradle plugin

Gradle plugin depends on core library which complicates plugin publishing. Is there any preferred way to to publish this?

Thanks

Hey Alex,

I’m sorry I missed this post until someone pointed me to it.

Since the plugin portal doesn’t host libraries, I suggest publishing the library to Bintray, then declaring a dependency on that library in your plugin. If the library is needed at runtime, you should consider not declaring the jcenter() repository in your plugin, allowing the user to use their own internal repo.

If your situation is more nuanced such that you cannot do this, please provide a bit more detail and I promise our follow up will be more prompt.

Cheers,
Eric

Good afternoon Eric,

Thanks for reply, but I ended up publishing everything to Maven Central. Thus users can fetch everything from one location or rely on internal cache repositories. You need to host repository or it’s fork on Bintray to deploy to JCenter, which is not convenient as we have organization on GitHub:


http://central.maven.org/maven2/com/pandora/hydra/

Okay. It may be notable that JCenter mirrors Maven Central. Note also that the Gradle Plugin Portal currently relays requests it cannot handle to JCenter.

Glad you got this stuff out there, though. I’ll link to this plugin in the next Gradle newsletter.

Eric,
Yeah, that was a workaround, so developers should not even need to customize build script repositories list.
Thanks a lot, it would be really great to get more exposure.