github源码发布到Jcenter中【踩坑之旅】

总概:
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的注释,就会报错
     
     
  1. F:\git_space\as_lib_place\_LibSDK\LibSDK\src\main\java\com\yline\base\common\CommonRecycleViewHolder.java:45: 警警告告: <T>没没有有 @param
  2. public <T extends View> T get(int viewId)
  3. ^
  4. F:\git_space\as_lib_place\_LibSDK\LibSDK\src\main\java\com\yline\base\common\ViewHolder.java:30: 警警告告: <T>没没有有 @param
  5. public <T extends View> T get(int viewId)
  6. ^
  7. F:\git_space\as_lib_place\_LibSDK\LibSDK\src\main\java\com\yline\base\common\ViewHolder.java:9: 错错误误: '>' 的的用用法法错错误误
  8. * @author yline 2017/3/19 -->3:03
  9. ^
  10. F:\git_space\as_lib_place\_LibSDK\LibSDK\src\main\java\com\yline\utils\PermissionUtil.java:46: 警警告告: requestCode没没有有 @param
  11. public static void request(Activity activity, int requestCode, String... permissions)
  12. ^
  13. 14 个个错错误误
  14. 63 个个警警告告
  15. :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文件,不然引用不到【这里是区分大小写的】

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值