发布 Github 项目到 JCenter教程

2020-03-11 19:42:30

参考地址 发布 Github 项目到 JCenter

前言

最近想上传一个项目到 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


  • 2019-08-15 13:33:53

    nodejs的10个性能优化技巧

    在我接触JavaScript(无论浏览器还是NodeJS)的时间里,总是遇到有朋友有多线程的需求。而在NodeJS方面,有朋友甚至直接说到,NodeJS是单线程的,无法很好的利用多核CPU。那么我们在使用过程中,就要非常注意性能优化了

  • 2019-08-16 13:18:48

    使用ffmpeg进行ts切片并AES-128加密

    由于解密的key文件都是公开的,所以并不能算上完全加密,用户只要把你的key+m3u8里的ts切片文件全部下载,用ffmpeg还是能解,这时就要考虑url的key防止用户直接下载和盗链。 ​

  • 2019-08-18 22:22:54

    Error:error: unable to remove file: Permission denied

    JNI里写的C++增加了函数或修改了,如果此时是Debug模式下,而且还没退出程序,就出现这个Permission denied的提示。解决也很简单:就是退出App即可。如果退出无响应,直接拔usb,重新插上也可以

  • 2019-08-19 10:24:29

    浅析Express中的路由与应用模式

    Express是一个基于Node.js的轻量级web开发框架,具有体积小,使用灵活等特点。查看Express的源码,如果不计供使用的中间件,主体框架只有一千余行代码,非常简练。

  • 2019-08-19 15:50:17

    记录PHP的进程和线程理解

    线程是进程的一个执行流,线程不能分配系统资源,它是进程的一部分,比进程更小的独立运行的单位。 解释一下:进程有两个特性:一是资源的所有权,一个是调度执行(指令集),线程是调度执行中的一部分,是指进程执行过程的路径,也叫程序执行流。线程有时候也叫轻量级进程。

  • 2019-08-20 08:51:52

    一台Linux服务器可以负载多少个连接?

    我们在压测一台目标服务器,想看下负载的连接数,当我们压到一定数量的时候,控制台突然报"too many open files",这是因为linux系统创建一个TCP连接的时候,都会创建一个socket句柄,每个socket句柄就是一个文件句柄。

  • 2019-08-20 08:56:42

    Linux下Http高并发参数优化之TCP参数

    Linux 内核参数考虑的是最通用场景,并不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux内核参数。其次,对 Nginx 的一些参数,也需要根据服务情况进行调整。

  • 2019-08-20 11:05:30

    php,nginx,线程和进程分析

    大多数的 Linux 程序都倾向于使用进程而不是线程,因为 Linux 下相对来说创建进程的开销比较小,而 Linux 的线程功能又不是很强大。

  • 2019-08-20 11:22:36

    Node.js 单线程与多进程比较

    进过上面两种方式的对比,结果很明显,多进程处理速度是单线程处理速度的 4 倍多。而且有条件的情况下,如果电脑 CPU 足够,进程数更多,那么速度也会更快。