总概:
1,注册Bintray、创建Resposity、创建Package【这里有一个坑】
2,配置Gradle(Local.properties、project.gradle、libaray.gradle)
3,运行Terminal,gradlew命令,将代码上传到Bintray【这里我遇到两个坑,但是感觉这里到处都是坑】
4,到Bintray发布
5,查看Bintray发布的aar地址,并且引用自己的工程
【这里也有一个坑】
涉及到的信息:【非私密】
Gradle:
Gradle参数 | 含义 | 案例 |
bintrayRepo | Bintray网站中,创建的Repository名称 | maven |
bintrayName | Bintray网站中,创建的Package名称 | libsdk |
publishedName | 引用你的库的时候,第一段字符 | com.yline.lib |
libarayName | 你的工程名 | LibSDK |
artifact | 引用你的库的时候,第二段字符(最好和你的工程名一致) | LibSDK |
libarayDescription | ---介绍工程[不影响结果,随意]--- | provider log,util,base,commone,and etc |
siteUrl | 工程的github网址 | https://github.com/yline/as_lib_place |
gitUrl | 工程的github给定的git | https://github.com/yline/as_lib_place.git |
libarayVersion | 引用你的库的时候,第三段字符 | 1.0.1 |
developerId | 你的用户名称Id | yline |
developerName | 你的用户名称 | yline |
developerEmail | 你的邮箱 | yline957339173@outlook.com |
licenseName | 固定 | The Apache Software License, Version 2.0 |
licenseUrl | 固定 | http://www.apache.org/licenses/LICENSE-2.0.txt |
allLicences | 固定 | ["Apache-2.0"] |
引用方式:
compile 'com.yline.lib:LibSDK:1.0.1'
--------------------------------------------------------我是分割线-----------------------------------------------------------
接下来就是每一个步骤了
1,注册Bintray、创建Resposity、创建Package【这里有一个坑】
注册:
一定要点击红色方框里面的,不然之后会出现
HTTP/1.1 404 Not Found [message:Repo ‘maven’ was not found]
问题
接下来填写个人信息即可
创建Responsity:这里命名随意,一般以maven命名,之后Gradle配置用得上【只需要记住就好了】
创建Package:这里命名随意,确定你的包名,之后Gradle配置用得上【只需要记住就好了】
2,配置Gradle(Local.properties、project.gradle、libaray.gradle)
local.properties
bintray.user=yline // 这里是用户名 bintray.apikey=***************** // 个人网站标识,从网站中获取
bintray.apikey: 在Bintray网站里面,edit_profile --> api key中查看
project.gradle 添加三个classpath
buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.3' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.1' classpath "org.jfrog.buildinfo:build-info-extractor-gradle:3.1.1" classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' } } allprojects { repositories { jcenter() } } task clean(type: Delete) { delete rootProject.buildDir }
libaray.gradle
apply plugin: 'com.android.library' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { minSdkVersion 11 targetSdkVersion 25 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } lintOptions { // 配置这个,为你省掉一些麻烦 abortOnError false // Lint 会检查项目中的语法错误 } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:25.1.1' compile 'com.android.support:recyclerview-v7:25.1.1' } ext { bintrayRepo = 'maven' // 对应Bintray网站中,创建Repository的命名 bintrayName = 'libsdk' // 对应Bintray网站中,创建的package的命名 publishedGroupId = 'com.yline.lib' // 随意,对应之后引用工程的 第一段名称 libraryName = 'LibSDK' // 最好是工程名 artifact = 'LibSDK' // 最好是工程名,对应之后引用工程的 第二段名称 libraryDescription = 'provider log,util,base,common and ect' // 工程的描述 siteUrl = 'https://github.com/yline/as_lib_place ' // github项目地址 gitUrl = 'https://github.com/yline/as_lib_place.git' // github项目地址git libraryVersion = '1.0.1' // 随意,对应之后工程的 第三段名称 developerId = 'yline' // 用户名ID,对应创建bintray账号的名称ID developerName = 'yline' // 用户名ID,对应创建bintray账号的名称ID developerEmail = 'yline95739173@outlook.com' // 邮箱,对应创建bintray账号的邮箱 licenseName = 'The Apache Software License, Version 2.0' // 固定 licenseUrl = 'http://www.apache.org/licenses/LICENSE-2.0.txt' // 固定 allLicenses = ["Apache-2.0"] // 固定 } apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/installv1.gradle' // 固定 apply from: 'https://raw.githubusercontent.com/nuuneoi/JCenter/master/bintrayv1.gradle' // 固定 javadoc { // 引用这个,是为了解决注释中,有中文,然后编译不通过的坑 options { encoding "UTF-8" charSet 'UTF-8' //author true version true title 'A LibSDK Support For Android' // 文档标题 } }
3,运行Terminal,gradlew命令,将代码上传到Bintray【这里我遇到三个坑,但是感觉这里到处都是坑】
命令:
gradlew install
gradlew bintrayUpload
坑1:注释编译不通过,报:JavaDocJar 编译GBK字符无法自动映射错误
解决方案:
libaray.gradle中,加入javadoc 具体参照上图
坑2:注释错误,即:方法如果没有返回,但是加了@return的注释,就会报错
F:\git_space\as_lib_place\_LibSDK\LibSDK\src\main\java\com\yline\base\common\CommonRecycleViewHolder.java:45: 警警告告: <T>没没有有 @param
public <T extends View> T get(int viewId)
^
F:\git_space\as_lib_place\_LibSDK\LibSDK\src\main\java\com\yline\base\common\ViewHolder.java:30: 警警告告: <T>没没有有 @param
public <T extends View> T get(int viewId)
^
F:\git_space\as_lib_place\_LibSDK\LibSDK\src\main\java\com\yline\base\common\ViewHolder.java:9: 错错误误: '>' 的的用用法法错错误误
* @author yline 2017/3/19 -->3:03
^
F:\git_space\as_lib_place\_LibSDK\LibSDK\src\main\java\com\yline\utils\PermissionUtil.java:46: 警警告告: requestCode没没有有 @param
public static void request(Activity activity, int requestCode, String... permissions)
^
14 个个错错误误
63 个个警警告告
:LibSDK:javadoc FAILED
解决方案:的确是自己错了,就慢慢改吧;也可在
libaray.gradle中,加入lintOptions
具体参照上图
坑3:发布失败:原因:注册的时候,选错了注册入口
正确的bintray目录:
解决方案:找到正确的入口,重新注册,参照步骤一,注册
4,到Bintray发布【一定要步骤三正确才会出现】
5,查看Bintray发布的aar地址,并且引用自己的工程
【这里也有一个坑】
aar理论地址:【这个要过2-3个小时之后才会出现】
即:固定前缀+你的bintray网站上的packageName
引用:如网站所示
坑1:studio中搜索不到,gradle配置错误
studio中搜索不到:不解决
gradle中配置的:
artifact一定要和你的工程名一样
即:在查看aar地址的时候,如下图所示,与你引用名称相同的路径,下一定要有aar文件,不然引用不到【这里是区分大小写的】
参考:
http://blog.csdn.net/tmac2000/article/details/53261141 --> 解决了注册Bintray的问题
http://blog.csdn.net/cooljean/article/details/48134911 --> 解决了GBK注释编码问题