使用Gradle发布aar项目到Jcenter仓库

jcenter兼容maven gradle lvy等形式 方便我们项目的开源工作

注册账号

https://bintray.com/这边有一个要特别注意的点,注册的时候点opensource那个!!不然是企业相关的,没有办法建立自己的代码仓,当时被这个坑了很久。注册的账号一般国内的qq邮箱什么的不能使用,建议使用gmail

获取你的API Key

使用Gradle发布aar项目到Jcenter仓库_第1张图片
image

编辑你当前library文件的build.gradle

1.根节点添加插件

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

2.根节点添加版本号

version = "0.1" //修改后重新上传的标识号

3.若使用非GBK格式编码,添加格式兼容

allprojects {
    repositories {
        google()
        jcenter()
        mavenLocal()
        maven {
            url "${project.rootDir}/../../libraries/m2repository"
        }
        flatDir {
            dirs 'libs'
        }
    }
    
    //此处添加的UTF-8格式
    tasks.withType(Javadoc) {
        options.addStringOption('Xdoclint:none', '-quiet')
        options.addStringOption('encoding', 'UTF-8')
    }
}

4.根节点加aar&&jcenter相关

def siteUrl = '' //此处为github项目地址
def gitUrl = ''//此处为git地址 ******.git
group = "" //唯一区别码 一般可以使用packageId 

install {
    repositories.mavenInstaller {
        // This generates POM.xml with proper parameters
        pom {
            project {
                packaging 'aar'
                name '' //项目名称
                url siteUrl
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
                developers {
                    developer {
                        id '' //jcenter id
                        name '' //jcenter name
                        email '' //jcenter mail
                    }
                }
                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
}

//local.properties 内添加 bintray.user bintray.apikey
Properties properties = new Properties()
boolean isHasFile = false
if (project.rootProject.file('local.properties') != null){
    isHasFile = true
    properties.load(project.rootProject.file('local.properties').newDataInputStream())
}
bintray {
    user = isHasFile ? properties.getProperty("bintray.user") : System.getenv("bintray.user")
    key = isHasFile ? properties.getProperty("bintray.apikey") : System.getenv("bintray.apikey")
    configurations = ['archives']
    pkg {
        repo = "" //jcenter仓库名 此处注意要现在jcenter创建这个名称的repo 不然上传报错
        name = "" //jcenter 项目名
        websiteUrl = siteUrl
        vcsUrl = gitUrl
        licenses = ["Apache-2.0"]
        publish = true
    }
}

5.执行上传

./gradew javadocJar
./gradew sourcesJar
./gradew install
./gradew bintrayUpload

你可能感兴趣的:(使用Gradle发布aar项目到Jcenter仓库)