美文网首页
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