Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to upload module to JCenter using gradle bintray plugin?

I am sorry if I am being too stupid but I just can't make it work... I have an Android Module Project in AS that I want to upload to JCenter - using gradle bintray plugin from JFrog. I follow this tutorial in order to create the repository on bintray and I ended up with the following build.gradle for the module:

apply plugin: 'com.android.library'
apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.android-maven'

Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())

bintray {
    user = properties.getProperty('bintray.user')
    key = properties.getProperty('bintray.apikey')

    configurations = ['published', 'archives']

    dryRun = false
    publish = true

    pkg {
        repo = 'maven'
        name = 'custom-searchable'

        desc = 'This repository contains a library that aims to provide a custom searchable interface for android applications'

        websiteUrl = 'https://github.com/...'
        issueTrackerUrl = 'https://github.com/.../issues'
        vcsUrl = 'https://github.com/....git'

        licenses = ['The Apache Software License, Version 2.0']
        labels = ['android', 'searchable', 'interface', 'layout']
        publicDownloadNumbers = true

        version {
            name = '1.0'
            desc = 'Bintray integration test'
            vcsTag = '1.0'
        }
    }
}

ext {
    bintrayRepo = 'maven'
    bintrayName = 'custom-searchable'

    publishedGroupId = 'br.com.edsilfer'
    libraryName = 'CustomSearchable'
    artifact = 'custom-searchable'

    libraryDescription = 'This repository contains a library that aims to provide a custom searchable interface for android applications'

    siteUrl = 'https://github.com/...'
    gitUrl = 'https://github.com/....git'

    libraryVersion = '1.0'

    developerId = '...'
    developerName = '...'
    developerEmail = '...'

    licenseName = 'The Apache Software License, Version 2.0'
    licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
    allLicenses = ["Apache-2.0"]
}


android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    defaultConfig {
        minSdkVersion 22
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:design:22.2.0'
    compile 'com.android.support:recyclerview-v7:21.0.3'
}

And this one for the project:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

After running the task gradle bintrayUpload (it finishes sucessfully) my repository in bintray looks like that:

first hierarchy And when you open the unspecified folder you'll find this:

enter image description here

So questions!

  1. Why version is being upload like unspecifiend?
  2. I can't compile my project with the given group id:artifact:version, when trying to build it on AS it says that it fails to resolve the path to the artifact.

Any help will be appreciated!

like image 634
E. Fernandes Avatar asked Jun 23 '15 05:06

E. Fernandes


People also ask

What is gradle Bintray plugin?

Overview. The Gradle Bintray Plugin allows you to publish artifacts to Bintray.

What is JCenter Bintray?

JCenter is a central repository on JFrog Bintray platform for finding and sharing popular JVM language packages in Maven format, used by Maven, Gradle, Ivy, SBT, and others. JCenter is the most comprehensive source for OSS Maven packages, hosting over 340,000 public packages.


1 Answers

You are using the standard configuration provided by the gradle plugin, which do not specify library version.

I'm using the publication instead:

...
apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'

...

bintray {
    ...
    publications = ['Publication']
    pkg {
        ...
    }
}

publishing {
    publications {
        Publication(MavenPublication) {
            artifact jar
            groupId 'com.lib'
            artifactId 'help-er'
            version '0.1'
        }
    }
}

If you want to use configurations check this question: Publish on bintray using the gradle-bintray-plugin

like image 116
TpoM6oH Avatar answered Sep 22 '22 21:09

TpoM6oH