编写目的
本人在前天把自己新写的一个Android Library上传到GitHub之后在想能不能自己通过gradle compile的方式来引用自己的项目,通过大量搜索之后找到了hongyang的这篇文章(Android 快速发布开源项目到jcenter),但是中间遇到很多需要注意的事项,直到现在才提交jcenter审核,所以汇总一下做一个分享,希望能够帮助到后来的朋友们。
注册Bintray账号
首先应该要说说账号的注意事项:应该是进入到https://bintray.com/signup/oss进行账号注册,如果是直接在https://bintray.com首页中点击登录到注册的话,注册之后的是企业账号,需要有30天的激活时间,在30天内需要缴费才能够正常使用,如果30天内未缴费,则会被作废处理,而且在30天内未激活的话上传了项目之后是没有add to jcenter的按钮的。在https://bintray.com/signup/oss中进行注册的是个人用户,可以使用GitHub、Google以及Twitter这三个第三方登录。登录之后会看到如下界面:
这里最开始进来之后是没有hongyang说的maven那个的,我这里是一个Tom的图片,也就正好是hongyang的maven,这个是自己点击Add New Repository创建的,名字可以随意取,下面选择是Maven就行了。这里还有一个Licenses,需要选择Apache-2.0。
bintray-release
再来说说这个插件,我也在看了hongyang的文章之后作了一些了解,这个插件应该是能够把项目上传到jcenter的方法中最简单的了。这个项目的GitHub地址:bintray-release。
publish补充说明
publish {
userOrg = 'antichristm'//Organizations名,这里个人用户的组织名与用户名相同,实际上这里应该是上面图片中左上角那个红色圆圈旁边那个名字,不要括号中的
repoName = 'android'//Repository名,hongyang这里是省略了,因为他的Repository创建的时候就叫做maven,而去到插件的GitHub中会看到有说明,这里如果不设置就默认为maven,所以如果在上面新建Repository的时候名字不叫做maven的话就会报出404的错误
groupId = 'dog.abcd'//包名(不要项目名)
artifactId = 'antilib'//项目名称
publishVersion = '1.0.1'//版本号
desc = 'A Library For Android Development'//描述,不重要
website = 'https://github.com/michaellee123/AntiLib'//网站
}
这里只说明了最重要的参数哦,因为我就是因为repoName没有设置而我的Repository名字并不叫maven,就出错了,这里需要注意下!这里是插件的官方参数说明:GitHub。
Build时报错
注释中包含中文
这里就需要在项目的gradle中添加如下代码:
allprojects {
repositories {
jcenter()
}
tasks.withType(Javadoc) {
options {
encoding "UTF-8"
charSet 'UTF-8'
links "http://docs.oracle.com/javase/7/docs/api"
}
}
}
注释中包括自定义的参数
我也不知道怎么描述这个问题,我最开始在使用Eclipse的时候为了方便代码管理就在注释模板上面定义了两个注释:@Mender和@Company,在Eclipse导出的时候可以在最后定义-tag @Mender:”修改” -tag @Company:”公司”,但是在Android Studio中我始终都没有找到这个参数在哪儿定义,以至于在build的时候就报错了,这个着实弄了很久,最后的解决办法就是把自定义的这些标签给删了。也算不是办法的办法了吧。
其他
实际上如果项目本身没有什么问题的话,然后再按照hongyang的文章配置之后,再仔细检查一下我这儿提到的注意事项,基本上也就没有什么问题了。如果有问题的话根据错误信息去进行修改也不是什么大问题了。
还有就是第一次运行gradlew命令提交的时候会下载很多文件,这是正常的,不要以为是运行错命令了。