概述
在開發(fā)過程中那先,有很多模塊是不依賴于某個(gè)項(xiàng)目的,也就是所有項(xiàng)目都是通用的抄腔,這種模塊有很多,對(duì)于小的工具類理张,我都是自己在項(xiàng)目下新建一個(gè)utils包赫蛇,比較大
的都是通過library進(jìn)行引用,以前也想著自己搞一個(gè)遠(yuǎn)程倉庫進(jìn)行依賴雾叭,直接通過gradle接入悟耘,研究了一下,現(xiàn)在主流的倉庫大致有Maven center ,jcenter,也注冊(cè)過賬號(hào)织狐,當(dāng)我準(zhǔn)備接入的時(shí)候發(fā)現(xiàn)了JitPack這個(gè)倉庫暂幼,然后發(fā)現(xiàn)接入流程比較人性化,而且可以跟自己的Github打通赚瘦,然后就選擇了它作為接入方式了粟誓,然而,痛苦才剛剛開始起意。
正文
網(wǎng)上看了很多文章鹰服,各種5分鐘,10分鐘接入JitPack揽咕,看地我是熱血沸騰悲酷,臥槽,這么簡(jiǎn)單亲善,我也試試设易,然后就開始了。
One
新建一個(gè)Project,并且在項(xiàng)目中新建一個(gè)Library
Two
添加依賴
project的build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
}
library的build.gradle
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
group='com.github.wustor'
Three
上傳到自己的Github上面去蛹头,然后發(fā)布一個(gè)版本顿肺,版本號(hào)為v0.0.1
Four
進(jìn)入JitPack官網(wǎng),然后使用自己的Github賬號(hào)進(jìn)行登錄渣蜗,在左側(cè)找到你剛才發(fā)布的項(xiàng)目,點(diǎn)擊會(huì)出現(xiàn)
當(dāng)時(shí)我以為這樣就可以引入了屠尊,實(shí)際上并沒有發(fā)布成功,我們看到Log是紅色的耕拷,說明報(bào)錯(cuò)了讼昆,成功的時(shí)候是綠色的,點(diǎn)擊進(jìn)去查看日志
0m0.708s
FAILURE: Build failed with an exception.
* Where:
Build file '/home/jitpack/build/build.gradle' line: 6
* What went wrong:
A problem occurred evaluating root project 'build'.
> Could not find method google() for arguments [] on repository container.
我們知道google()是谷歌自己的maven倉庫骚烧,是AS3.0也就是基于gradle3.0浸赫,說明JitPack暫時(shí)還不支持gradle3.0
Five
那我就只能把gradle的版本降低至2.3.3闰围,然后同時(shí)將gradleWrapper,然后發(fā)布第二個(gè)版本v0.0.2,不過好像并沒有什么用既峡,云端編譯依然沒有通過
* Where:
Build file '/home/jitpack/build/app/build.gradle' line: 1
* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'com.android.application']
> Minimum supported Gradle version is 3.3. Current version is 3.1. If using the gradle wrapper, try editing the distributionUrl in /home/jitpack/build/gradle/wrapper/gradle-wrapper.properties to gradle-3.3-all.zip
這個(gè)錯(cuò)誤讓我很無語羡榴,我明明已經(jīng)上傳了3.3,還跟我說沒有上傳涧狮,逗我玩么炕矮,重新發(fā)布了好幾個(gè)版本,依然不行
Six
如果不是因?yàn)檫@種方式者冤,相比jcenter有很多優(yōu)勢(shì),我可能就直接放棄了档痪,官方明顯沒有對(duì)gradle的版本進(jìn)行適配涉枫,不過也可以理解,比較gradle3.0也是剛出來不久腐螟,但是那些5~10分鐘的博客確實(shí)是成功了愿汰,然后我就自己看了看他們的Demo,發(fā)現(xiàn)他們的gradle版本都比較低乐纸,然后我就換成了他們的版本衬廷,也就是:
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
然后重新上傳至Github,進(jìn)行發(fā)布第三個(gè)版本汽绢,v0.0.3,成功了
點(diǎn)擊Get it吗跋,可以看到依賴方式
compile 'com.github.wustor:JitPackDemo:v0.0.3'
Seven
如果我們想在本地使用這個(gè)開源項(xiàng)目也比較簡(jiǎn)單,在project的根目錄下添加JitPack的maven 依賴
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
然后再app的目錄下進(jìn)行引用
dependencies {
compile 'com.github.wustor:JitPackDemo:v0.0.3'
}
由于JitPack是在云端編譯的宁昭,實(shí)際上跟在本地沒有什么區(qū)別跌宛,所以只要在JitPack的官網(wǎng)上面顯示構(gòu)建成功,那么在本地肯定是可以引用的积仗,這里就不做介紹了疆拘,而且這也不是本文的重點(diǎn)
總結(jié)
其實(shí)寫這篇博客,可能花了不到半個(gè)小時(shí)寂曹,但是在集成的時(shí)候哎迄,確實(shí)是花了很長(zhǎng)時(shí)間,網(wǎng)上的博客介紹隆圆,至少我看過的漱挚,百分之百的都是gradle插件版本為2.2.3的環(huán)境下進(jìn)行集成的,而且官方也給出了gradle版本對(duì)應(yīng)的插件版本匾灶,就是在這種環(huán)境下還是無法成功棱烂,想起來之前在Android Studio 3.0的基礎(chǔ)上集成Jenkins時(shí)也是各種莫名其妙的問題。不過也有可能是自己的環(huán)境哪里出了問題阶女,等過一段時(shí)間再試試gradle的3.0版本颊糜。