1暗挑、本文簡介
很多時候笋除,我們都是compile的aar或者jar,或者項目內(nèi)的module炸裆。但是有沒有發(fā)現(xiàn)不方便垃它?如果某個人改了公共庫里的代碼,要么把a(bǔ)ar或者jar重新拷貝新的發(fā)送過來晒衩。如果是module似乎沒事,直接在module改動即可墙歪,然后從git上繼續(xù)pull代碼即可听系。但是如果多個項目怎么辦,都引用同一個公共lib虹菲,此時還是得多個項目都改動module靠胜。本文就是介紹多人多項目的情況下,如何共同使用同一個lib毕源,做到一處改動浪漠,多項目同時可更新。鑒于本人在發(fā)表文章前一天剛學(xué)習(xí)如何搭建霎褐,如有紕漏址愿,望指正!
2冻璃、搭建nexus環(huán)境
下載鏈接: http://www.sonatype.org/nexus/go/(似乎官網(wǎng)下載不了响谓,臉大的可以試試)
http://download.csdn.net/detail/u010716109/9497645
下載完后,進(jìn)行解壓省艳,PS:去官網(wǎng)下載的童鞋請下載nexus-2.13.0-01-bundle.tar.zip娘纷,把解壓的文件放在你想要防止的目錄
1.配置環(huán)境參數(shù)
在\bin\jsw\conf目錄下,打開wrapper.conf文件跋炕,ctrl+F查找command單詞赖晶,一共有2處是下面寫法。下面是更改后的寫法辐烂,童鞋們把下面路徑換成自己java jdk目錄遏插。
(1)Java Application
wrapper.java.command=C:\Java\jdk1.8.0_45\bin\java.exe
(2) Set the JVM executable
(modify this to absolute path if you need a Java that is not on the OS path)
wrapper.java.command=C:\Java\jdk1.8.0_45\bin\java.exe
2.打開cmd。
cd 文件名纠修,直到跳轉(zhuǎn)到你解壓文件下的bin目錄涩堤。(小技巧:文件名敲其中幾個字母,按tab鍵分瘾,直接補(bǔ)全胎围,這樣不用敲復(fù)雜的文件路徑)
(1)輸入nexus install吁系,顯示安裝成功wrapper | nexus installed.
(2)輸入nexus start ,成功會顯示下面內(nèi)容白魂。如果失敗汽纤,顯示failed to start,那么需要看一下8081端口是否被占用或者剛才配置java jdk的路徑是否正確
wrapper | Starting the nexus service...
wrapper | Waiting to start...
wrapper | Waiting to start...
wrapper | Waiting to start...
wrapper | Waiting to start...
wrapper | Waiting to start...
wrapper | nexus started.
現(xiàn)在安裝配置完成福荸,可以進(jìn)行下一步了蕴坪。
3.啟動nexus本地站點127.0.0.1:8081/nexus,如果打不開敬锐,則需要查看8081端口是否被占用背传。
4.建立倉庫
(1)點擊右上角的log in,然后輸入賬號admin台夺,密碼admin123径玖,登陸完成后點擊左側(cè)導(dǎo)航欄的Repositories,點擊中間頁的add按鈕颤介,選擇hosted倉庫梳星。如下圖。
(2)填寫下面紅框內(nèi)容滚朵,點擊save冤灾。倉庫名字和id我是寫的一樣。
(3)此時你可以在上面?zhèn)}庫名單里找到自己新建的倉庫辕近。由于我在默認(rèn)倉庫組里創(chuàng)建(public Repositories分組下點擊的add)韵吨,所以倉庫的groupid是public。(這個很重要一會要用到)
(4)打開你的lib項目移宅,在對應(yīng)的module里的build.gradle加入下面代碼学赛。
需要注意的是更改ttshop為你自己的倉庫名,根據(jù)lib的類型選擇packaging是aar還是jar包吞杭。 groupId 和artifactId 就是剛才的站點里顯示的名字盏浇,找到并且填寫。
apply plugin: 'com.android.library'
apply plugin: 'maven'
apply plugin: 'signing'
signing {
required { has("release") && gradle.taskGraph.hasTask("uploadArchives") }
sign configurations.archives
}
uploadArchives {
configuration = configurations.archives
repositories.mavenDeployer {
beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
repository(url: 'http://127.0.0.1:8081/nexus/content/repositories/ttshop/') {//倉庫地址
authentication(userName: "admin",//用戶名
password: "admin123")//密碼
}
pom.project {
name 'ttshop'
packaging 'aar'
description 'none'
url 'http://127.0.0.1:8081/nexus/content/repositories/ttshop/'//倉庫地址
groupId "public"
artifactId "ttshop" //LibA
version 1.0
}
}
}
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
}
(5)在android studio里的terminal里執(zhí)行g(shù)radlew tasks指令(WIN下),編譯lib,生成aar葫哗。PS:其它系統(tǒng)執(zhí)行./gradlew tasks指令苞笨。接著gradlew uploadArchives指令,上傳文件到倉庫里。這個指令執(zhí)行過程中,可能提示下載gradle文件,下載需要比較久班挖,我這邊花了10多分鐘。
然后上傳成功后芯砸,我們在nexus的安裝目錄下E:\english_soft_maven_tool\sonatype-work\nexus\storage可以找你倉庫組萧芙,比如我的是public给梅,然后在public里打開會看到ttshop的文件夾,里面會有上傳的文件双揪。下圖是在nexus站點里查看的截圖动羽。
自此,搭建環(huán)境以及上傳保存文件完成渔期。下面有些小福利贈送运吓,請查看周邊環(huán)境后,再往下翻動疯趟!高能預(yù)警拘哨!
3、具體使用方式
在要引用庫的項目里的項目build.gradle里加入maven聲明信峻。不是app目錄下的build.gradle哦倦青。127.0.0.1可以改成你發(fā)布maven私有庫的ip地址,這樣其它機(jī)器可以同步倉庫里的lib
allprojects {
repositories {
jcenter()
mavenCentral()
//這里加入自己的maven地址,其它機(jī)器要輸入正確的IP地址站欺,本地就用127.0.0.1
maven {
url "http://127.0.0.1:8081/nexus/content/repositories/ttshop/"
}
}
}
然后在app目錄下的build.gradle目錄加入compile 'public:ttshop:1.0@aar'的應(yīng)用庫聲明姨夹,然后sync now纤垂。
dependencies {
compile 'public:ttshop:1.0@aar'
}
感覺有用的請點個贊吧矾策,謝謝大家。分享請注明出處峭沦。
相關(guān)文章推薦:
http://www.open-open.com/lib/view/open1434522817864.html
http://techtalk.alo7.com/?p=220