AndroidStudio上传项目到JCenter仓库

作者: 卜俊文 | 来源:发表于2016-08-11 15:14 被阅读283次

    一、描述

    分享一下上传项目到Jcenter和Maven的一种方法,方法我百度看了有好多,我在这里整理一下。

    二、上传项目

    (1)注册一个Bintray账号



    (2)登陆成功,并且打开 View All ,看到Mavan时点击选择。

    (3)选择完Mavan,现在开始创建一个新的Package。

    (4)填写Name,这个Name需要与你的项目工程LIbrary相同的名字,Lincenses就图片的Apache-2.0,最后的Version Control 就随便填了,最后Create Package。

    </br>

    (5)这样就创建完成,好了,现在可以开始配置LIbrary了。

    (6)创建项目,并且创建Library,这里再提醒一下,创建的Library名字必须跟在Bintray中创建Package的名字相同。



    (7)在UploadJcenter根目录的build.gradle中,添加参数,第一个如果有了就不用重复添加了

     dependencies {
            classpath 'com.android.tools.build:gradle:2.0.0'
            classpath 'com.github.dcendents:android-maven-gradle-plugin:latest.release'
            classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.6'
        }
    

    </br>

    (8)在mytool中的build.gradle中,添加以下代码,需要添加的代码我都有注释标明,并且这里说明一点,如果Bintray上没有创建Package包的话,就会根据本地填写的包名自动创建。

    </br>

    apply plugin: 'com.android.library'
    apply plugin: 'com.github.dcendents.android-maven'//需添加的
    apply plugin: 'com.jfrog.bintray'//需添加的
    
    version = "1.0.0" //需更改,这个是Library的版本后,每次更新的时候,版本需要不一样
    
    android {
        compileSdkVersion 23
        buildToolsVersion "24.0.0"
    
        defaultConfig {
            minSdkVersion 15
            targetSdkVersion 23
            versionCode 1
            versionName "1.0"
        }
        lintOptions {//需添加的
            abortOnError false
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.4.0'
    }
    
    //下面到结尾都是需要添加的
    def siteUrl = 'https://github.com/'      // 可默认,项目的主页
    def gitUrl = 'https://github.com/'   //可默认, Git仓库的url
    group = "com.junwen.mytool" // 需更改,这个就是Library最后生成出来的包名,最后会成为这样:compile 'com.junwen.mytool:mytool:1.0.0'
    install {
        repositories.mavenInstaller {
            // This generates POM.xml with proper parameters
            pom {
                project {
                    packaging 'aar'
                    // Add your description here
                    description 'my utils for test'
                    name 'Android Commonly used utils'  // 可默认,项目描述
                    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 'YOUR_ID'
                            name 'YOUR NAME'
                            email 'YOUR EMAIL'
                        }
                    }
                    scm {
                        connection gitUrl
                        developerConnection gitUrl
                        url siteUrl
                    }
                }
            }
        }
    }
    task sourcesJar(type: Jar) {
        from android.sourceSets.main.java.srcDirs
        classifier = 'sources'
    }
    task javadoc(type: Javadoc) {
        options.encoding = 'UTF-8'
        source = 'src/main/java'
    }
    
    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())
    bintray {
        user = properties.getProperty("bintray.user")
        key = properties.getProperty("bintray.apikey")
        configurations = ['archives']
        pkg {
            repo = "maven"  //发布到Bintray的那个仓库里,默认账户有四个库,我们这里上传到maven库
            name = "mytool"  //需更改,这个名字就是你在Bintray上创建Package的名字,这里会查询,如果此包不存在就会创建一个。
            websiteUrl = siteUrl
            vcsUrl = gitUrl
            licenses = ["Apache-2.0"]
            publish = true
        }
    }
    

    </br>

    (9)在项目中的local.properties文件中添加用户信息

    </br>

    bintray.user=YOUR_BINTRAY_USERNAME //你的Bintray用户名
    bintray.apikey=YOUR_BINTRAY_API_KEY //你的Key值
    
    

    </br>

    (10)最后打开Terminal,输入命令执行上传,当BUILD SUCCESSFUL时代表上传成功!

    </br>

    gradlew bintrayUpload
    

    </br>

    </br>

    (11) 如果看到了这个就代表成功上传,如果需要上传到Jcenter点击Add to Jcenter,输入描述信息发送信息等待官方审核,审核通过即可直接根据地址调用。

    </br>



    如果没有上传Jcenter的话,要调用就需要先在项目根目录build.gradle中,添加如下:

    allprojects {
        repositories {
            jcenter()
            maven {
                url "http://dl.bintray.com/junwen/maven" //这个要添加,只要更改junwen成你的用户名即可
            }
        }
    }
    

    之后在app/build.gradle中添加 compile 'com.junwen.mytool:mytool:1.0.0' 即可使用

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        testCompile 'junit:junit:4.12'
        compile 'com.android.support:appcompat-v7:23.4.0'
        compile 'com.junwen.mytool:mytool:1.0.0'
    }
    
    

    总结

    在本地的build.gradle配置中,配置的Package名字如果不存在,他会自动创建,所以以后可以先配置项目,直接上传,他会根据你本地上传给予的项目名,自动创建Bintray对应的Package包。

    欢迎关注我的微信公众号,分享更多技术文章。

    相关文章

      网友评论

      • 王元_Trump:我找到原因了 你的代码pkg里面没有写所属组织名 我加上就好了 官方github上有写
        王元_Trump:@卜俊文 https://github.com/bintray/gradle-bintray-plugin
        卜俊文:@王元_Trump 在哪里有写组织名?这流程我之前都是成功的,测试过的,鬼知道过了一段时间就有问题了,所以不爱用这个Jcenter了。怪坑的感觉
      • 王元_Trump:Executing tasks: [bintrayUpload]

        Parallel execution with configuration on demand is an incubating feature.
        Incremental java compilation is an incubating feature.
        :library:bintrayUpload
        :library:bintrayUpload: file E:\project_code\TestGithub\library\build\libs\library-1.0.0-javadoc.jar could not be found.
        :library:bintrayUpload: file E:\project_code\TestGithub\library\build\libs\library-1.0.0-sources.jar could not be found.

        FAILED

        FAILURE: Build failed with an exception.

        * What went wrong:
        Execution failed for task ':library:bintrayUpload'.
        > Could not create version '1.0.0': HTTP/1.1 401 Unauthorized [message:This resource requires authentication]

        * Try:
        Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

        BUILD FAILED
        这个是咋回事啊 搞了很久了都没弄好
        卜俊文:@王元_Trump Jcenter感觉很坑额,我后面用的也出问题了,你看我另一篇文章吧,介绍JitPack的,这个也是跟Jcenter一样的,不过方便多了

      本文标题:AndroidStudio上传项目到JCenter仓库

      本文链接:https://www.haomeiwen.com/subject/ojxssttx.html