Android Studio将远程仓库默认指定为Jcenter仓库,位于Bintray网站。Bintray网站下面还有其他好几个仓库。本文主要介绍如何将Android项目发布到Jcenter。
注册Bintray账号
Bintray官网:https://bintray.com
也可使用GitHub账号登录。
获取APIKey
上传项目之前我们需要两样东西,一个就是用户名,另一个是APIKey。APIKey可在这里查看。
点击show便可显示。
插件依赖
在项目最外层的build.gradle添加“gradle-bintray-plugin”以及“android-maven-plugin”插件的依赖。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.1.0' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.0' } }
allprojects { repositories { jcenter() } }
|
Module配置
在需要发布到Jcenter的module(比如library)的build.gradle里配置以下内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95
| apply plugin: 'com.android.library' apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' version = "1.0.0" // 版本号
android { compileSdkVersion 23 buildToolsVersion "23.0.3" resourcePrefix "bankcardformat" // 随意命名
defaultConfig { minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }
dependencies { compile 'com.android.support:appcompat-v7:23.+' compile fileTree(dir: 'libs', include: ['*.jar']) }
def siteUrl = 'https://github.com/smuyyh/BankCardFormat' // Git项目主页 def gitUrl = 'https://github.com/smuyyh/BankCardFormat.git' // Git仓库url group = "com.yuyh.bankcardformat" // 一般为包名
install { repositories.mavenInstaller { // 生成POM.xml pom { project { packaging 'aar' name 'Android BankCardFormat' // 项目描述 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 'smuyyh' name 'smuyyh' email 'smuyyh@gmail.com' } } scm { connection gitUrl developerConnection gitUrl url siteUrl } } } } } task sourcesJar(type: Jar) { from android.sourceSets.main.java.srcDirs classifier = 'sources' } task javadoc(type: Javadoc) { options.encoding = "UTF-8" // 设置编码,否则中文可能会提示出错 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") key = properties.getProperty("bintray.apikey") configurations = ['archives'] pkg { repo = "maven" // 发布到Maven库 name = "BankCardFormat" // 发布到JCenter上的项目名字 websiteUrl = siteUrl vcsUrl = gitUrl licenses = ["Apache-2.0"] publish = true } }
|
配置Username和APIKey
在local.properties文件配置Username和APIKey。
1 2
| bintray.user = xxxx bintray.apikey = xxxx
|
正常情况下local.properties应该加入到.gitignore文件里,因为这两项属于隐私信息,无需上传到GitHub。当然了,也可把bintray.user及bintray.apiKey配置在Gradle用户目录下的gradle.properties(不存在则新建),例如Windows是在C:/user/username/.gradle,OSX和Linux在~/.gradle
ReBuild
Rebuild一下项目,会发现在/build/outputs/aar下生成两个文件,这就是library打包出来的二进制文件。
上传项目到Jcenter
在Android Studio的Terminal执行以下命令:
1 2 3 4
| gradlew javadocJar gradlew sourcesJar gradlew install gradlew bintrayUpload
|
执行成功之后,在Bintray个人主页下面可以看到Maven多了一个Package。
点击进去可看到刚刚上传的项目
申请项目加入Jcenter
申请地址:https://bintray.com/bintray/jcenter
搜索刚刚上传的项目,并选中。或者进入项目主页,点击右下角“Add to Jcenter”
输入项目描述,完成。
等待审核
审核速度挺快,一般几个小时左右会通过。Bintray会向您发送一条成功的信息。那么就完成上传了。
项目依赖
1 2 3
| dependencies { compile 'com.yuyh.bankcardformat:library:1.0.0' }
|
项目更新
上传的库进行升级的时候,须更改build.gradle下的version、versionCode、versionName,否则无法进行打包上传。更改完之后重新执行上传项目到Jcenter步骤。上传完成可在项目主页下看到更新的版本号。
扫码打赏,你说多少就多少
打开支付宝扫一扫,即可进行扫码打赏哦
扫码打赏,你说多少就多少
打开微信扫一扫,即可进行扫码打赏哦