前言
最近想上传一个项目到 jcenter() 当中。本来非常简单的一件事,一来而去折腾半天。浪费了不少时间 , 因此写篇博客,让后人少踩点坑。
账号注册
第一步就踩了坑,注册错了网站。
点击此处注册链接 : 点我注册
如果你在 官网 , 请点击下图红色箭头处注册。不要点那个 START YOUR FREETRIAL !!!
点击注册页面后会进入下方界面 :
FirstName : 名 。 LastName: 姓 (这两个你可以随便输入,之后可以更改)
UserName : 登录使用的用户名。 (想好了再输入,不能更改的哦 !!! )
password : 密码
Email Address : 邮箱地址 。 (我发现输入 QQ 邮箱是不行的,框框会变红,但是也不给你提示。建议你使用 Google 邮箱) 。
Select Country : 选择国家 。 (你可以选择 China , 之后也可以更改。)
然后点击 Create My Account 成功注册。 哪一项的输入框没有输入或者不正确,输入框会变红 。
遇到的坑 :
和我一样懒的人会使用右方的 Sign up with Github 。
然后你就会发现无法更改邮箱,我的 Github 使用 QQ 邮箱 , 无法注册 !
和我一样懒的人,也会使用 Sign up with Google 。 然后你就会发现 jcenter () 默认使用 Google 的用户名 , 并且无法更改。
发布项目当然要用一个更酷的名字。于是我决定重新注册 , 可谷歌邮箱已经被占用了。 机智的我跑到 Edit Profile , 然后把Google 邮箱改为 QQ 邮箱 (没错,这里可以使用 QQ 邮箱 ) 。
因此老老实实的注册,不要偷懒 !!!
创建仓库
如下图 点击 View Profile
点击 Add New Repository
进入页面后
Name : 填入 maven 。
Type : 选择 Maven 。
Default Licenses : 可不用填写(之后可以改动)
Description (Optional) : 描述 (也可不用填写,之后可以改动)
然后点击下方 Create , 仓库创建完毕 。
配置 Android Studio
打开Android Studio , 打开准备上传的项目。
在你 project 的 build.gradle 添加 classpath , 如下图 :
请不要偷懒,不要复制下列代码
classpath 'com.novoda:bintray-release:0.8.1'
1
com.novoda:bintray-release 的版本号跟 Gradle 版本的版本是息息相关的。
使用错误的版本号,添加配置后 gradle 会报错 :
Error:No such property: FOR_RUNTIME for class: org.gradle.api.attributes.Usage
1
你应该进入 这个网站
将页面滚动到最下方 , 你会看到兼容的版本 , 请选择你项目 Gradle 的版本对应的 com.novoda:bintray-release 版本。
填写完 classpath ,如果立即 sync gradle 会报错的 :
Have you created the publish closure? Missing userOrg. Missing groupId. Missing artifactId. Missing publishVersion. Missing desc.
1
还需要在准备发布的 module 的 build.gradle 中 添加 :
apply plugin: 'com.novoda.bintray-release'
1
添加 publish :
publish {
userOrg = 'ilpanda' // bintray.com 用户名
groupId = 'com.ilpanda' // jcenter上的路径
artifactId = 'rocket' // 项目名称
publishVersion = '1.0.0' // 版本号
desc = 'An Android downloader' // 项目 描述(不重要)。"不重要"的意思是你可以乱填,但是不能删除 desc 哦。
website = 'https://github.com/ilpanda/Rocket' //网站。 就填入Github 项目地址就可以了。也不能删除 website 哦。
}
1
2
3
4
5
6
7
8
完整文件如下 :
apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'
android {
compileSdkVersion 26
defaultConfig {
minSdkVersion 16
targetSdkVersion 26
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
publish {
userOrg = 'ilpanda'
groupId = 'com.ilpanda'
artifactId = 'rocket'
publishVersion = '1.0.0'
desc = 'an Android downloader'
website = 'https://github.com/ilpanda/Rocket'
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
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
然后在 Android Studio 的命令行中上传项目到 JCenter 。
mac 系统 执行模板如下 :
$ ./gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
1
BINTRAY_USERNAME : 你需要替换为之前注册的 Jcenter 用户名 。
BINTRAY_KEY 位置的如下 :
登录 网站 成功后。点击 Edit Profile
之后点击左侧 API Key
输入密码或不用输入密码。点击 show , 然后复制字符串替换命令中的 BINTRAY_KEY 。
windows 系统执行模板如下 :
gradlew clean build bintrayUpload -PbintrayUser=BINTRAY_USERNAME -PbintrayKey=BINTRAY_KEY -PdryRun=false
1
然后盯着你的命令行,失败的话会有错误提示(自行 Google 吧),成功的话会显示 Successful 。
审核
上传成功后,并不能立即通过 Gradle 使用 ,还需要审核 。 进入你的仓库,点击进入你的项目。
然后点击 Add to jCenter 进入审核界面。
之后请输入项目描述 (不要什么都不填),点击下方 Send 。
审核过后,会有站内信,也会有邮件发到你的邮箱,审核时间为一天左右。时差原因,可能是半夜审核。
然后你才能通过 Gradle 使用项目 。
升级项目
第一次发布项目需要审核。
如果你需要升级项目的话,上传到 JCenter 后即可使用,不需要审核。
publish {
userOrg = 'ilpanda'
groupId = 'com.ilpanda'
artifactId = 'rocket'
publishVersion = '1.0.1' // 升级版本号后,执行上传命令即可。
desc = 'An file downloader for Android Applications'
website = 'https://github.com/ilpanda/Rocket'
}
1
2
3
4
5
6
7
8
你也许可以的参考文章
https://blog.csdn.net/lmj623565791/article/details/51148825
https://www.jianshu.com/p/9db20aaf932c
https://www.jianshu.com/p/65d8485b4d34