将Android项目发布到Jcenter

将Android项目发布到Jcenter

意义

项目中开发一个公用的类库每次都用依赖项目的形式很繁琐,所以就尝试着发布到Jcenter, 这样就能支持Gradle一句话依赖使用。

准备工作

1. 需要添加的工程
2. 也可以将项目发布到github
3. 需要一个账号 https://bintray.com 这个网址能够申请
    如何申请Bintray帐号?注册流程就省略,去网站就一看便知,如果不清楚的可以联系我!

配置项目gradle和local.properties

1、 配置local.properties
这里的bintray.user就是申请的账号
apikey就是每个账户下面的Apikey 可以修改

bintray.user=emotiona
bintray.apikey=2c1ee3a2d44c1d7659c7a6c741304aa0d0bf2b2e

如下图所示
将Android项目发布到Jcenter_第1张图片

2、配置工程的build.gradle

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'

        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
        mavenCentral()
    }
}
task clean(type: Delete) {
    delete rootProject.buildDir
}

3、 配置moudle的build.gradle
将Android项目发布到Jcenter_第2张图片

具体配置看代码

apply plugin: 'com.android.library'
apply plugin: 'com.jfrog.bintray'
apply plugin: 'com.github.dcendents.android-maven'
//提交到仓库中的版本号
version = "1.0.0"
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"
    }
}
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.squareup.okhttp3:okhttp:3.2.0'
}
def siteUrl = 'https://github.com/xiaoshi316/Sobot'      // 项目的github主页 
def gitUrl = 'https://github.com/xiaoshi316/Sobot.git'      // Git仓库的git url 

group = "com.sobot.library"    // 这里是groupId ,必须填写  一般填你唯一的包名

install {
    repositories.mavenInstaller {
        // This generates POM.xml with proper parameters
        pom {
            project {
                packaging 'aar'
                // Add your description here
                name 'Android for Sobot'    //项目描述
                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 'emotiona'        //填写开发者的一些基本信息 你在Bintray注册的用户名
                        name 'emotiona'    //这里和上面一样
                        email '[email protected]'  //填写联系邮箱
                    }
                }
                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())
bintray {
    user = properties.getProperty("bintray.user")    //读取 local.properties 文件里面的 bintray.user
    key = properties.getProperty("bintray.apikey")  //读取 local.properties 文件里面的 bintray.apikey
    configurations = ['archives']
    pkg {
        userOrg="handpay"//组织名称  bintray创建的组织  现在新版本记住要加这个不然会报错(这个没填一直报错)
        repo = "sobot"//仓库
        name = "sobotLibrary"    //发布到JCenter moudle的名字名字,必须填写
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        licenses = ["Apache-2.0"]
        publish = true
    }
}

javadoc {
    options{
        encoding "UTF-8"
        charSet 'UTF-8'
        author true
        version true
        links "http://docs.oracle.com/javase/7/docs/api"
    }
}

上传项目到Jcenter###  

准备工作都做完啦,最后一步就是上传操作了,点击AndroidStudio底部的Terminal
* 这里如果你系统配置了gradle的用户环境,输入gradle install,如果没有配置gradle用户环境,输入gradlew install,如果没有问题,最终你会看到BUILD SUCCESSFUL
* 如果你看到了生成javadoc时编译不过,那么要看下在gradle中task javadoc下有没有failOnError false这句话,在刚才编写gradle时提示过了。如果加了这句而你的javadoc写的不规范会有警告,你不用鸟它。
* 最后一步,运行gradle install后看到BUILD SUCCESSFUL后,再输入上传命令gradle bintrayUpload,等一分钟左右就执行完了,会提示SUCCESSFUL

将Android项目发布到Jcenter_第3张图片
将Android项目发布到Jcenter_第4张图片
当上传之后就等着审核吧,审核过了就能使用了。

你可能感兴趣的:(Android)