2015-04-15 4 views
5

Я пытаюсь опубликовать библиотеку Android для jcenter. Я последовал за https://github.com/danielemaddaluno/gradle-jcenter-publish учебником. Все работает отлично, пока я пытаюсь выполнитьОпубликовать андроидную библиотеку для jcenter: gradle bintrayUpload не находит библиотеки

gradle bintrayUpload

Когда я делаю это я получаю BUILD FAILED. Когда я смотрю на ошибки я вижу

package com.android.volley does not exist

Поэтому библиотеки, которые я включил в Gradle зависимости не быть найдены

dependencies { 
    compile 'com.mcxiaoke.volley:library:1.+' (...) 
} 

Тем же happends с другими библиотеками включено.

Как исправить эту проблему?

I Установите модуль build.gradle

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

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     minSdkVersion 8 
     targetSdkVersion 22 
     versionCode 1 
     versionName "0.0.1" 
    } 

    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

dependencies { 
    compile 'com.mcxiaoke.volley:library:1.+' 
    compile 'com.shamanland:fab:0.0.8' 
    compile 'com.google.code.gson:gson:2.2.4' 
    compile 'com.android.support:appcompat-v7:22.0.0' 
    compile 'com.android.support:gridlayout-v7:21.0.3' 
} 

def siteUrl = "SOME_URL" 
def gitUrl = 'SOME_URL' 
group = "GROUP_ID" 
install { 
    repositories.mavenInstaller { 
     // This generates POM.xml with proper parameters 
     pom { 
      project { 
       packaging 'aar' 

       // Add your description here 
       name 'NAME' 
       description = 'DESCRIPTION' 
       url siteUrl 

       // Set your license 
       licenses { 
        license { 
         name 'The Apache Software License, Version 2.0' 
         url 'http://www.apache.org/licenses/LICENSE-2.0.txt' 
        } 
       } 
       developers { 
        developer { 
         id 'MY_ID' 
         name 'MY_NAME' 
         email 'MY_EMAIL' 
        } 
       } 
       scm { 
        connection gitUrl 
        developerConnection gitUrl 
        url siteUrl 
       } 
      } 
     } 
    } 
} 



task sourcesJar(type: Jar) { 
    from android.sourceSets.main.java.srcDirs 
    classifier = 'sources' 
} 

task javadoc(type: Javadoc) { 
    source = android.sourceSets.main.java.srcDirs 
    classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) 
} 

task javadocJar(type: Jar, dependsOn: javadoc) { 
    classifier = 'javadoc' 
    from javadoc.destinationDir 
} 
artifacts { 
    archives javadocJar 
    archives sourcesJar 
} 

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

// https://github.com/bintray/gradle-bintray-plugin 
bintray { 
    user = properties.getProperty("bintray.user") 
    key = properties.getProperty("bintray.apikey") 

    configurations = ['archives'] 
    pkg { 
     repo = "maven" 
     // it is the name that appears in bintray when logged 
     name = "androidupdatechecker" 
     websiteUrl = siteUrl 
     vcsUrl = gitUrl 
     licenses = ["Apache-2.0"] 
     publish = true 
     version { 
      gpg { 
       sign = true //Determines whether to GPG sign the files. The default is false 
       passphrase = properties.getProperty("bintray.gpg.password") //Optional. The passphrase for GPG signing' 
      } 
//   mavenCentralSync { 
//    sync = true //Optional (true by default).  Determines whether to sync the version to Maven Central. 
//    user = properties.getProperty("bintray.oss.user")   //OSS user token 
//    password = properties.getProperty("bintray.oss.password") //OSS user password 
//    close = '1' //Optional property. By default the staging repository is closed and artifacts are released to Maven Central. You can optionally turn this behaviour off (by puting 0 as value) and release the version manually. 
//   } 
     } 
    } 
} 

и проект build.gradle

// 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.1.2' 
     classpath 'com.github.dcendents:android-maven-plugin:1.2' 
     classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.1" 

    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 
+0

Опубликуйте build.gradle –

+0

@GabrieleMariotti файлы добавлены – Mateu

+0

же вопрос здесь, я буду обновлять, если я найти решение. вы когда-нибудь разрешали это? –

ответ

0

Библиотека находится в хранилище Maven, так что вы должны объявить Maven центрального хранилища. Добавьте его в свой проект build.gradle файл, как это:

buildscript { 
    repositories { 
     mavenCentral() 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.1.2' 
     classpath 'com.github.dcendents:android-maven-plugin:1.2' 
     classpath "com.jfrog.bintray.gradle:gradle-bintray-plugin:1.1" 

    } 
} 
-1

Пожалуйста, обратитесь к следующему:

user = properties.getProperty("bintray.user") 
    key = properties.getProperty("bintray.apikey") 

На данный момент, вам нужно в вашем местном. Регистрация в файлах свойств,

Bintray. User = XXX 
Bintray apikey = XXX 
Смежные вопросы