Android Library 上传到 JCenter 步骤

本文目的是记录将 Android 代码上传到 JCenter 的一般步骤,备忘之用。
示例上传代码是一个 gradle 插件工程

上传代码到 JCenter 的准备工作

  1. JCenter 的网址 https://bintray.com/
  2. 登录账户/注册账户
  3. 需要用到的基本信息有:用户名、秘钥
    Android Library 上传到 JCenter 步骤_第1张图片

Gradle 文件配置

  • 根目录的 build.gradle 文件中添加 classpath 依赖(版本号根据实际版本号修改)
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.3.1'
classpath 'com.github.dcendents:android-maven-plugin:1.2'
  • 编写上传到 JFrog 的配置文件 bintray.gradle ,放置于项目根目录下(或者直接将该文件内容写到待上传 modulebuild.gradle 文件中也是一样的效果),配置细节看注释所示
// 应用插件
apply plugin: 'com.jfrog.bintray'
apply plugin: 'maven-publish'

//个人网页地址
def baseUrl = 'https://github.com/liulinru13'
def siteUrl = baseUrl
//git仓库地址
def gitUrl = "${baseUrl}/PngquantGradlePlugin"
//git仓库issues地址
def issueUrl = "${baseUrl}/issues"



install {
    repositories {
        mavenInstaller {
            // This generates POM.xml with proper paramters
            pom.project {
                //添加项目描述
                //项目名称
                name 'pngcompress'
                url siteUrl

                //设置开源证书信息
                licenses {
                    license {
                        name 'The Apache Software License, Version 2.0'
                        url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                    }
                }
                //添加开发者信息
                developers {
                    developer {
                        name 'mmrx'
                        email '[email protected]'
                    }
                }

                scm {
                    connection gitUrl
                    developerConnection gitUrl
                    url siteUrl
                }
            }
        }
    }
}


//配置上传Bintray相关信息
bintray {
    user = BINTRAY_USER
    key = BINTRAY_KEY

    configurations = ['archives']
    pkg {
        repo = 'pngquantGradlePlugin' // 上传到中央仓库的名称
        name = 'pngcompress' // 上传到jcenter 的项目名称
        desc = '基于pngquant命令行工具的png图片压缩插件' // 项目描述
        websiteUrl = siteUrl
        issueTrackerUrl = issueUrl
        vcsUrl = gitUrl
        labels = ['gradle', 'plugin'] //标签
        licenses = ['Apache-2.0']
        publish = true
    }
}

代码中的 BINTRAY_USERBINTRAY_KEY 分别指的是之前在 JFrog 上的用户名和秘钥,这里不直接用明文是由于考虑到安全性,需要保密,我将其放在了根目录下的 gradle.properites 中,在 .gitignore 选择了不上传这个文件,当然也可以放到其他的配置文件中。

  • 在要上传到仓库的 module 下的 build.gradle 文件中,应用 bintray.gradle 中的配置信息,文件最上方添加下方的代码。其中,groupversion 和之前的一样,artifactId 无法定义,默认为项目名。除此之外,还需要将源文件和 javadoc 文件一并打成 jar 包,这里需要新增两个 Task 来处理
apply plugin: 'groovy'
apply plugin: 'maven'
// 应用插件
apply from: '../bintray.gradle'

//uploadArchives{
//    repositories{
//        mavenDeployer{
//            repository(url: uri('../repos'))
//        }
//    }
//}

repositories{
    jcenter()
}

group = "com.mmrx.pngcompress"
version = '1.0.1'

dependencies{
    implementation gradleApi()
    implementation localGroovy()
}

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

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

需要注意的是,后面上传到 JCenter 时,需要包含.pom文件、二进制的jar包,还需要包含源码jar包,至于 javadoc 的jar包则是可选的,否则点击Add to JCenter 按钮之后不久就会收到上传失败的站内信,告诉你缺少文件。

Android Library 上传到 JCenter 步骤_第2张图片

  • sync now 之后,在 Gradle projects 待上传 module 的目录下 的 ‘other’ 选项下会出现一个名为 installTask,下方还会有 publishing 选项
    Android Library 上传到 JCenter 步骤_第3张图片

  • 按顺序点击 install bintrayUpload 两个 Task

  • 此时就可以在配置文件中配置 maven 仓库地址并进行引用了,在项目的 build.gradle 文件中添加依赖。
    repositories {
        jcenter()
        // Gradle 插件的仓库
        maven {
            //你自己的 JFrog 仓库地址
            url  "https://dl.bintray.com/mmrx/pngquantGradlePlugin/"
        }
    }
    // 添加依赖,此依赖从远程仓库中查找
    dependencies {
        classpath 'com.android.tools.build:gradle:2.1.0'
        //自己编写的Gradle插件
        classpath 'com.mmrx.pngcompress:pngcompress:1.0.0'
        // 将项目发布到JCenter 所需要的jar
        classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0'
        classpath 'com.github.dcendents:android-maven-plugin:1.2'
    }
  • 如果想只配置 classpath 依赖,就需要将 JFrog 上的仓库发布到 JCenter 上去,点击 Add to JCenter 按钮,等待审核,下方出现东西后方可使用箭头所指的依赖
    Android Library 上传到 JCenter 步骤_第4张图片

本文参考 http://blog.csdn.net/lisdye2/article/details/52292896

你可能感兴趣的:(android其他)