搞這個東西也是花了蠻長時間,主要還是對gradle中的groovy語言不熟悉所導致的,寫下來,以防下次再入坑~
在gradle中新建task
如果你需要將某個module打包成aar,并上傳到maven上去,需要在這個module下面的build.gradle文件中添加如下代碼:
	
其中代碼:
apply plugin: 'maven'
表示我們要應用的插件。
MAVEN_LOCAL_PATH表示maven服務器地址,packaging表示需要打包的類型,groupId:artifactId:version,就是我們需要依賴的字段。
上傳aar到maven服務器
在studio中打開控制臺,執行命令
./gradlew uploadArchives
就能看到log一直跑,直到99%上傳aar,如果提示buildSuccessful,那祝賀你,你已經將aar文件上傳到maven服務器了。
上傳時遇到的問題
執行上傳任務時,其實遇到蠻多問題的,這里記住幾個就都寫下來~
fail to resolve: TestProject:datalibrary:unspecified
解決辦法:將
compile 'com.android/256086.html">android.commonlibrary:datalibrary:0.1.0'
改為
compile 'com.android.commonlibrary:datalibrary:0.1.0@aar'
詳情請見http://stackoverflow.com/questions/36114259/errorfailed-to-resolve-android-iconicslibrary-coreunspecified
return Code 401
解決辦法:這是上傳的賬號密碼不對,請跟maven倉庫管理員認真核實申請的賬號密碼。
Fix the issues identified by lint
這個錯誤具體截圖所示:
	
根據log提示,我們需要在每個module的build.gradle文件中的android域內添加代碼
android{  lintOptions{  abortOnError false }}記住,是每個module都得添加,不然還是會出錯,血淋淋的教訓吶
聲明需要引用的maven服務器
在我們主工程的最外層的build.gradle中,添加如下代碼:
allprojects { repositories {  jcenter()  maven {   url "http://192.168.1.107:9999/repository/commonlibrary/"   credentials {    username 'louxiaohui'    password '111111'   }  } }}注意:由于現在經常用的jcenter,bintray,nexus,aar包都是public的,所以聲明maven服務器時,不需要設置賬號密碼,但是對于有些設置了賬號密碼的,就得添加代碼進行認證~
credentials { username 'louxiaohui' password '111111'}PS: 這都是血淋淋的教訓,由于對groovy語言不熟悉,我對credentials這個關鍵字都找了好久,才知道這貨是用來認證賬號密碼的。。。
引用aar
這個就簡單啦,代碼大家應該都很熟悉,在需要引用此aar的 module中的build.gradle文件中,添加如下代碼:
compile 'com.android.commonlibrary:datalibrary:0.1.0'
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答