美文网首页
as上传Android Library到JCenter(二)

as上传Android Library到JCenter(二)

作者: CarlosLynn | 来源:发表于2019-01-25 11:59 被阅读6次

    注册Bintray账号

    • 点击即直达 注册地址
      建议直接关联 Github账号进行注册 & 登录
    image.png
    授权
    image.png
    注意事项:
    网易邮箱和腾讯邮箱无法注册!!!!!
    注册地址是 https://bintray.com/signup/oss

    在Bintray上建立仓库

    点击Add New Repository

    image.png

    填写仓库信息

    name:写仓库名称(因为上传的时候不指定的话默认仓库名是maven)
    type:选择maven,
    Default Licenses:选Apache-2.0
    Description:是描述,随便填


    image.png

    仓库创建成功


    image.png

    配置项目的build.gradle

    在你Project的build.gradle文件中加入Maven和Jfrog Bintray的依赖插件:

    buildscript {
        repositories {
            jcenter()
            google()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:3.1.4'
            //加入Maven和Jfrog Bintray的依赖插件
            classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
            classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
        }
    }
    allprojects {
        repositories {
            jcenter()
            google()
        }
    }
    task clean(type: Delete) {
        delete rootProject.buildDir
    }
    

    你不一定要和我用同样版本的插件,说不定你用的时候就不是这个版本了。建议去Github上看看最新的版本:
    Maven:https://github.com/dcendents/android-maven-gradle-plugin
    Jfrog Bintray:https://github.com/bintray/gradle-bintray-plugin

    配置ibrary的build.gradle文件

    然后在library的build.gradle文件中进行配置,这里以我的开源控件ZAtDemo为例:

    apply plugin: 'com.android.library'
    //添加配置
    apply plugin: 'com.github.dcendents.android-maven'
    apply plugin: 'com.jfrog.bintray'
    android {
        compileSdkVersion 28
        defaultConfig {
            minSdkVersion 14
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    
    }
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.android.support:appcompat-v7:28.0.0'
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    }
    //项目主页
    def siteUrl = 'https://github.com/zhang721688/ZAtDemo'
    //项目的git地址
    def gitUrl = 'https://github.com/zhang721688/ZAtDemo.git'
    //发布到JCenter上的项目名字
    def libName = "AtEditText"
    //发布到组织名称名字,必须填写
    group = "com.zxn.zatlib"
    // 版本号,下次更新是只需要更改版本号即可
    version = "1.0.0"
    //上面配置后上传至JCenter后的编译路径是这样的: compile 'com.zxn.zatlib.AtEditText:library:1.0.0'
    //生成源文件
    task sourcesJar(type: Jar) {
        from android.sourceSets.main.java.srcDirs
        classifier = 'sources'
    }
    //生成Javadoc文档
    task javadoc(type: Javadoc) {
        source = android.sourceSets.main.java.srcDirs
        classpath += project.files(android.getBootClasspath().join(File.pathSeparator))
    }
    //文档打包成jar
    task javadocJar(type: Jar, dependsOn: javadoc) {
        classifier = 'javadoc'
        from javadoc.destinationDir
    }
    //拷贝javadoc文件
    task copyDoc(type: Copy) {
        from "${buildDir}/docs/"
        into "docs"
    }
    //上传到JCenter所需要的源码文件
    artifacts {
        archives javadocJar
        archives sourcesJar
    }
    // 配置maven库,生成POM.xml文件
    install {
        repositories.mavenInstaller {
            // This generates POM.xml with proper parameters
            pom {
                project {
                    packaging 'aar'
                    //项目描述,随意填
                    name 'A edittext view for at people.'
                    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 'zxn'
                            name 'ZhangXiaoNing'
                            email 'zxn13716071676@sina.com'
                        }
                    }
                    scm {
                        connection gitUrl
                        developerConnection gitUrl
                        url siteUrl
                    }
                }
            }
        }
    }
    //上传到JCenter
    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 {
            //这里的repo值必须要和你创建Maven仓库的时候的名字一样
            repo = "ZAtDemo"
            //发布到JCenter上的项目名字
            name = libName
            //项目描述
            desc = 'A edittext view for at people..'
            websiteUrl = siteUrl
            vcsUrl = gitUrl
            licenses = ["Apache-2.0"]
            publish = true
        }
    }
    
    javadoc {
        options{
            //如果你的项目里面有中文注释的话,必须将格式设置为UTF-8,不然会出现乱码
            encoding "UTF-8"
            charSet 'UTF-8'
            author true
            version true
            links "http://docs.oracle.com/javase/7/docs/api"
        }
    }
    

    配置local.properties

    除此外,还要将user和key写到local.properties文件中:

    sdk.dir=E\:\\Android\\Sdk
    //uer和key
    bintray.user=zhang721688
    bintray.apikey=838701a79a44c97075eda1019ee0a26428f4003e=593
    
    • user即为你的账号:
    • key从bintray的设置里里面复制一下:

    执行命令

    打开Android Studio底部工具栏的Terminal窗口,输入命令:

    gradlew install
    

    执行中:

    
    

    执行完毕:

    BUILD SUCCESSFUL in 57s
    27 actionable tasks: 27 executed
    
    

    上传到Bintray:然后我们接着在Terminal窗口输入命令:

    gradlew bintrayUpload
    

    上传成功:

    BUILD SUCCESSFUL in 21s
    28 actionable tasks: 7 executed, 21 up-to-date
    

    发布到JCenter

    这时候打开我们创建的maven仓库,就会在里面发现已经成功将项目上传到仓库里。


    image.png

    点击我们的项目名,进入详情:


    image.png
    点击“Add to JCenter”后:
    image.png

    直接点Send就行了。因为时差的关系,接下来就是漫长的等待审核了。


    image.png

    提交审核成功:


    image.png

    最后感谢

    一步一步教你在JCenter发布开源库

    相关文章

      网友评论

          本文标题:as上传Android Library到JCenter(二)

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