在開發過程當中,有不少模塊是不依賴於某個項目的,也就是全部項目都是通用的,這種模塊有不少,對於小的工具類,我都是本身在項目下新建一個utils包,比較大 的都是經過library進行引用,之前也想着本身搞一個遠程倉庫進行依賴,直接經過gradle接入,研究了一下,如今主流的倉庫大體有Maven center ,jcenter,也註冊過帳號,當我準備接入的時候發現了JitPack這個倉庫,而後發現接入流程比較人性化,並且能夠跟本身的Github打通,而後就選擇了它做爲接入方式了,然而,痛苦纔剛剛開始。android
網上看了不少文章,各類5分鐘,10分鐘接入JitPack,看地我是熱血沸騰,臥槽,這麼簡單,我也試試,而後就開始了。git
新建一個Project,而且在項目中新建一個Librarygithub
添加依賴 project的build.gradlebash
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
}
複製代碼
library的build.gradleapp
apply plugin: 'com.android.library'
apply plugin: 'com.github.dcendents.android-maven'
group='com.github.wustor'
複製代碼
上傳到本身的Github上面去,而後發佈一個版本,版本號爲v0.0.1 maven
進入JitPack官網,而後使用本身的Github帳號進行登陸,在左側找到你剛纔發佈的項目,點擊會出現 工具
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暫時還不支持gradle3.0gradle
那我就只能把gradle的版本下降至2.3.3,而後同時將gradleWrapper,而後發佈第二個版本v0.0.2,不過好像並無什麼用,雲端編譯依然沒有經過ui
* 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
複製代碼
這個錯誤讓我很無語,我明明已經上傳了3.3,還跟我說沒有上傳,逗我玩麼,從新發布了好幾個版本,依然不行google
若是不是由於這種方式,相比jcenter有不少優點,我可能就直接放棄了,官方明顯沒有對gradle的版本進行適配,不過也能夠理解,比較gradle3.0也是剛出來不久,可是那些5~10分鐘的博客確實是成功了,而後我就本身看了看他們的Demo,發現他們的gradle版本都比較低,而後我就換成了他們的版本,也就是:
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
複製代碼
而後從新上傳至Github,進行發佈第三個版本,v0.0.3,成功了
compile 'com.github.wustor:JitPackDemo:v0.0.3'
複製代碼
若是咱們想在本地使用這個開源項目也比較簡單,在project的根目錄下添加JitPack的maven 依賴
allprojects {
repositories {
maven { url 'https://jitpack.io' }
}
}
複製代碼
而後再app的目錄下進行引用
dependencies {
compile 'com.github.wustor:JitPackDemo:v0.0.3'
}
複製代碼
因爲JitPack是在雲端編譯的,實際上跟在本地沒有什麼區別,因此只要在JitPack的官網上面顯示構建成功,那麼在本地確定是能夠引用的,這裏就不作介紹了,並且這也不是本文的重點
其實寫這篇博客,可能花了不到半個小時,可是在集成的時候,確實是花了很長時間,網上的博客介紹,至少我看過的,百分之百的都是gradle插件版本爲2.2.3的環境下進行集成的,並且官方也給出了gradle版本對應的插件版本,就是在這種環境下仍是沒法成功,想起來以前在Android Studio 3.0的基礎上集成Jenkins時也是各類莫名其妙的問題。不過也有多是本身的環境哪裏出了問題,等過一段時間再試試gradle的3.0版本。