Search code examples
androidmavengradleaarbintray

Gradle doesn't find .aar file on Maven repo on Bintray


... even when the error reports the correct download URL.

(Bintray details below.)

Gradle Repo

repositories {
    jcenter()
    maven { url 'https://dl.bintray.com/myUsername/myRepo/' }
}

Dependencies

compile('com.domain.groupid:library-core:v1.2.3@aar') {
    transitive=true
}
compile('com.domain.groupid:library-support:v1.2.3@aar') {
    transitive=true
}

Error

Error:Could not find library-core.aar (com.domain.groupid:library-core:v1.2.3).
Searched in the following locations:
    https://dl.bintray.com/myUsername/myRepo/com/domain/groupid/library-core/v1.2.3/library-core-v1.2.3.aar

If I copy that URL, I can download it in a signed out window. Why does Gradle have a problem with it?

There is another similar compile dependency (listed here as library-support), but I'm assuming it didn't get to it because this one failed first.

The setup...

I have a personal public repo on Bintray, with two android libraries.

https://bintray.com/myUsername/myRepo/library-core
https://bintray.com/myUsername/myRepo/library-support

Both have versions upload by the bintray rule in my library's gradle scripts. The versions upload, I can see them in the bintray UI, and I can download them and see that they are what I expected:

https://dl.bintray.com/myUsername/myRepo/com/domain/groupid/library-core/maven-metadata.xml
https://dl.bintray.com/myUsername/myRepo/com/domain/groupid/library-core/library-core-v1.2.3/library-core-v1.2.3-sources.jar
https://dl.bintray.com/myUsername/myRepo/com/domain/groupid/library-core/library-core-v1.2.3/library-core-v1.2.3.aar
https://dl.bintray.com/myUsername/myRepo/com/domain/groupid/library-core/library-core-v1.2.3/library-core-v1.2.3.pom
// Same for library-support. All of these download in a signed out window.

Is gradle expecting something else?


Solution

  • Maven usually doesn't expect the v prefix in the version attribute. It's implied by the order of coordinate syntax: <group>:<name>:<version>. Using semantic versioning for the version number should do the trick.