Android上传项目到jcenter和jitpack

2019-06-05  本文已影响0人  大鹏的鹏

上传项目到jcenter

一.注册jcenter账号

image.png

二.创建Repository(仓库)

三.获取 API Key

四.配置引入 bintray-release插件

项目根目录build.gradle配置,加入bintray-release插件

buildscript {
       ...
    repositories {
       ...
    }
    dependencies {
       ...
        classpath 'com.novoda:bintray-release:0.9.2'
    }
}
allprojects {
    repositories {
     ...
    }
    //解决lib中中文乱码问题
    tasks.withType(Javadoc) { 
        options.addStringOption('Xdoclint:none', '-quiet')
        options.addStringOption('encoding', 'UTF-8')
    }
}

开源库目录build.gradle配置,每个配置描述都已经给出,完成这两个步骤,就可以准备上传开源库到jcenter了

apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'//添加 bintray-release 配置
android {
    ...
    defaultConfig {
    ...    
    }
    buildTypes {  
    }
    compileOptions {
        sourceCompatibility = 1.8
        targetCompatibility = 1.8
    }
}
dependencies {
    ...
}
//添加
publish {
    userOrg = 'lxlfpeng'//bintray.com用户名
    repoName = 'RecordingButton'   // bintray上仓库的名字
    groupId = 'com.lagua'//jcenter上的路径
    artifactId = 'RecordingButton'//项目名称
    publishVersion = '1.0.0'//版本号
    desc = 'Make flow layouts simpler'// 描述
    website = 'https://github.com/lxlfpeng/RecordingButton.git'//一般填github 项目地址,一定是要有效的地址
}

五.上传开源库

1.在项目根目录下执行上传命令
# window 下执行
gradlew clean build bintrayUpload -PbintrayUser=Xxxx -PbintrayKey=Xxxxxxxxx -PdryRun=false

# linux 下执行
./gradlew clean build bintrayUpload -PbintrayUser=Xxxx -PbintrayKey=xxxxxxxxx -PdryRun=false
2.上传命令解析
gradlew clean build bintrayUpload //根命令
-PbintrayUser=Xxxxxxxxx  //jcenter 账号用户名
-PbintrayKey=Xxxxxxxxx  //文章开头获取的API Key
-PdryRun=false //配置参数,true 执行所以细节但是不上传开源库,false上传开源库

六.添加到JCenter

1. Add to JCenter

上传成功之后就可以打开项目详情,选择 Add to JCenter 就可以申请添加到 JCenter 了,如下图所示:经过上面的步骤,我确实已经把开源库上传到Jcenter了,但是我们还不能引用,要想引用上传的开源库还得提交人工审核,人工审核通过会收到站内message,并且开源库中的Add to Jcenter 也会消失。


2. 审核期间引用

在工程(projrct)的build.gradle文件中,添加maven支持


allprojects {
    repositories {
       ...
        maven { url 'https://dl.bintray.com/lxlfpeng/xxxxx' }
    }
}

在moudle的build.gradle文件中,添加依赖

dependencies {
    ...
    implementation 'com.xx:xx:1.0.0'
}

七.版本更新

开源库有bug,或者我们进行迭代,就会涉及到版本更新,那就只需要修改开源库目录build.gradle配置中的版本号,其他配置保持不变,再次执行上传开源库命令就可以达到版本更新的目的。

publish {
    userOrg = 'maoqitian'//bintray.com用户名
    repoName = 'maolibrary'   // bintray上仓库的名字
    groupId = 'com.mao'//jcenter上的路径
    artifactId = 'flexibleflowlayout'//项目名称
    publishVersion = '2.0.0'//版本号
    desc = 'Make flow layouts simpler'// 描述
    website = 'https://github.com/maoqitian/FlowLayout'//一般填github 项目地址,一定是要有效的地址
}

2. 审核通过

审核通过会发送站内message,同时Add to jCenter按钮消失,并且可以通过访问https://jcenter.bintray.com/你的groupId查看。

七.问题

上传成功后jcenter项目首页不显示pom

问题:
上传成功后jcenter项目首页不显示pom,点击add to jcenter弹出以下错误提示:

Please fix the following before submitting a JCenter inclusion request: - Add a POM file to the latest version of your package.

是由于编码问题导致javadoc生成失败导致。

解决:

方式一:在Project的build.gradle中配置以下语句:

allprojects {
    repositories {
        google()
        jcenter()
    }
    // 新增
    tasks.withType(Javadoc) { 
        options.addStringOption('Xdoclint:none', '-quiet')
        options.addStringOption('encoding', 'UTF-8')
    }
}

方式二:拆分上传命令:

1、在Terminal执行gradlew clean build命令。

2、先右击执行generatePomFileForReleasePublication task,再右击执行publishReleasePublicationToMavenLocal task,具体操作看图:

3703765-cb867cc21ddc793e

3、在Terminal中执行gradlew bintrayUpload -PbintrayUser=username -PbintrayKey=API Key -PdryRun=false命令

Lint检查报错

问题:Lint检查报错,导致Build & Upload失败

解决:

方式一:需要自行根据错误信息修正Error级别的问题,

方式二:为Library项目的build.gradle配置以下Lint选项实现,--该方式摘自网络,未验证:

android {

...

lintOptions {
    abortOnError false // 即使有报错也不会停止打包
    checkReleaseBuilds false // 打包Release版本的时候也不进行Lint检测
}

...

}
网络问题导致的上传失败
问题:

* What went wrong:
Execution failed for task ':utils:bintrayUpload'.
> javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated
* What went wrong:
Execution failed for task ':utils:bintrayUpload'.
> org.apache.http.conn.HttpHostConnectException: Connection to http://127.0.0.1:8888 refused
* What went wrong:
Execution failed for task ':utils:bintrayUpload'.
> org.apache.http.NoHttpResponseException: The target server failed to respond

解决:
步骤1:关闭代理软件,重启网络;
步骤2:关闭由上传操作自动开启的Java客户端(Mac上会出现,其他设备不清楚)

上传项目到jitpack

一.准备好项目以及要发布的开源库。

上传到JitPack的开源库默认使用项目的名称,而不是要发布的开源库的名称,所以尽量给项目起一个比较优雅的名字(这里我们使用同名)。


二.配置gradle插件。

用到一个的插件android-maven-gradle-plugin

  1. 在项目的build.gradle添加classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
buildscript {
   ...
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.2'
        classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
    }
}

allprojects {
  ...
}
  1. 在要上传的library的build.gralde文件添加如下代码:
apply plugin: 'com.android.library'
// JitPack Maven
apply plugin: 'com.github.dcendents.android-maven'
// Your Group
group='com.github.username'
android {
  ...
}
  1. 将项目上传到github。

二.在github主页,创建一个Release或Tag

image.png
image.png
image.png
image.png

三.将项目的仓库提交到jitpack.io

image.png

版本提交完成后,JitPack会自动生成引用该library的配置信息


image.png

四.后续升级重复上面的步骤就可以了。

开源库上传 jcenter
AS上传Library到JCenter 教程+踩坑记录
亲测android Studio发布Lib到jCenter
如何一步一步的将自己的开源项目上传到jcenter
如何上传Android库项目的到JCenter

上一篇 下一篇

猜你喜欢

热点阅读