android lib 发布到jcenter

作者: 区区一只yamada | 来源:发表于2017-04-27 14:49 被阅读91次
    android

    在开发android中,当你需要引用第三方架包的时候你只需要在build.gradle简单的配置一下就可以使用了。
    像这样:

    gradle.png

    配置完成之后,gradle 会自动到maven远程仓库帮下载架包配置到你项目中。
    android 默认的maven仓库是 jcenter。你也可以在项目gradle里面配置自己想要的maven仓库:

    jcenter

    OK,在看了这么简单的引用方式大家一定也想将自己的lib 放到jcenter上面引用。
    今天我们来看看如何完成这一步。
    先进入jfrog的登录网站:https://bintray.com/login?forwardedFrom=%2F

    jfrog.png

    在这里要注意了, 因为jFrog用个收费版, 如果从这里直接进去默认是收费版的,所以我们要点击底部的另一个登录入口

    Paste_Image.png

    登录进入界面后,先添加一个maven类型的仓库

    Paste_Image.png Paste_Image.png

    创建完成后,我们在一个android项目中创建一个lib module

    Paste_Image.png

    创建完成 我们先在项目下的build.gradle下引入2个插件

    Paste_Image.png

    然后我们在 lib module下面的build.gradle引入编译脚本

    apply plugin: 'com.android.library'
    apply plugin: 'com.github.dcendents.android-maven'
    apply plugin: 'com.jfrog.bintray'
    
    
    version = "0.1.1"
    
    def siteUrl = 'https://github.com/hu5080126/CollapsingImgText'      // 项目的主页
    def gitUrl = 'https://github.com/hu5080126/CollapsingImgText.git'   // Git仓库的url
    group = "com.yahui"                                        // Maven Group ID for the artifact,一般填你唯一的包名
    install {
        repositories.mavenInstaller {
            // This generates POM.xml with proper parameters
            pom {
                project {
                    packaging 'aar'
                    // Add your description here
                    name 'use in AppBarLayout, Supports picture and text offset, zoom and fixed in title. it is a RelativeLayout.'
                    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 'yahui'        //填写的一些基本信息
                            name 'yahui.hu'
                            email '334972901@qq.com'
                        }
                    }
                    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 user 和 apikey
        key = properties.getProperty("bintray.apikey")
        configurations = ['archives']
        pkg {
            repo = "maven" //jfrog创建的仓库名称
            name = "collapsingimagetext" //创库下的包名
            userOrg = "yahui" //组织名, 如果再jfrog没有配置组织可以不写,配置了就需要写,因为maven仓库属于组织下面
            websiteUrl = siteUrl
            vcsUrl = gitUrl
            licenses = ["Apache-2.0"]
            publish = true
        }
    }
    javadoc { //jav doc采用utf-8编码否则会报“GBK的不可映射字符”错误
        options {
            encoding "UTF-8"
            charSet 'UTF-8'
        }
    }
    
    android {
        compileSdkVersion 25
        buildToolsVersion "25.0.2"
    
        defaultConfig {
            minSdkVersion 22
            targetSdkVersion 25
            versionCode 1
            versionName "1.0"
    
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        compile 'com.android.support:appcompat-v7:25.0.0'
        compile 'com.android.support:design:25.0.0'
    }
    
    

    在jfrog中获取你的用户名 和 apikey

    Paste_Image.png Paste_Image.png

    在local.properties中配置你的 user 和 apiKey


    Paste_Image.png

    配置完成:我们在androidStudio的终端命令输入 gradlew bintrayUpload

    Paste_Image.png

    执行完成以后,你会发现在你的jfrog 的maven仓库中多了一个pakeage

    Paste_Image.png

    点击进入后, 点击添加到add to jcenter 按钮,发给jcenter审核,可能需要一点时间。

    Paste_Image.png

    审核通过之后 你可以在你上传的架包中看到

    Paste_Image.png

    ok, 在以后的引用中, 你就可以开心的直接 用gradle引用了,不要在copy代码了。

    相关文章

      网友评论

        本文标题:android lib 发布到jcenter

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