AndroidStudio上传项目到JCenter仓库

一、描述

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

二、上传项目


(1)注册一个Bintray账号


AndroidStudio上传项目到JCenter仓库_第1张图片


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


AndroidStudio上传项目到JCenter仓库_第2张图片


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


AndroidStudio上传项目到JCenter仓库_第3张图片


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


AndroidStudio上传项目到JCenter仓库_第4张图片


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


AndroidStudio上传项目到JCenter仓库_第5张图片


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


AndroidStudio上传项目到JCenter仓库_第6张图片


(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'
    }


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


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
    }
}


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


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


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


gradlew bintrayUpload


AndroidStudio上传项目到JCenter仓库_第7张图片


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



AndroidStudio上传项目到JCenter仓库_第8张图片

如果没有上传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包。

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

AndroidStudio上传项目到JCenter仓库_第9张图片

你可能感兴趣的:(AndroidStudio上传项目到JCenter仓库)