概述
- Nexus是一個(gè)基于maven的倉庫管理的社區(qū)項(xiàng)目系宜。主要的使用場景就是可以在局域網(wǎng)搭建一個(gè)maven私服运敢,用來部署第三方公共構(gòu)件或者作為遠(yuǎn)程倉庫在該局域網(wǎng)的一個(gè)代理拄查。
Nexus安裝
Nexus依賴JDK1.8+躺彬,確保設(shè)備上已安裝配置JDK1.8+的開發(fā)環(huán)境取具。
Nexus官網(wǎng)其掂,找到Nexus Repository Manager 3并下載油挥。
解壓到任意目錄下,在終端中移動(dòng)到該目錄款熬,再進(jìn)入到
nexus-<version>/bin
下深寥。執(zhí)行./nexus run
。-
服務(wù)起來后贤牛,默認(rèn)端口為8081惋鹅。在瀏覽器上輸入
http://127.0.0.1:8081/
即可訪問到Nexus。
Nexus使用
首次進(jìn)入Nexus
- 點(diǎn)擊Nexus首頁的右上角Sign in殉簸,使用默認(rèn)的管理員賬號(hào)進(jìn)行登錄闰集。(賬號(hào)名為admin,密碼為admin123般卑。)
創(chuàng)建用戶
-
進(jìn)入創(chuàng)建用戶的界面武鲁。
-
填寫用戶資料并提交即可。注意以下幾點(diǎn):
ID和Password關(guān)系到Gradle的打包上傳蝠检,要牢記沐鼠。
Status設(shè)為Active。
Roles是角色權(quán)限控制叹谁,可選值有
nx-admin
饲梭、nx-anonymous
,可多選焰檩。
創(chuàng)建倉庫
-
進(jìn)入創(chuàng)建倉庫界面憔涉。
-
Recipe的選擇:
hosted:本地倉庫,用于部署個(gè)人或團(tuán)隊(duì)的公共構(gòu)件析苫。
proxy:代理倉庫兜叨,用于代理遠(yuǎn)程倉庫,如maven中央倉庫衩侥。
group:倉庫組浪腐,用來合并多個(gè)hosted/proxy倉庫。
-
填寫倉庫資料并提交顿乒。注意以下幾點(diǎn):
Name是倉庫名议街,是該倉庫的唯一標(biāo)識(shí),常用反向域名來書寫,如tech.daking等龙。
-
創(chuàng)建成功后,可在倉庫列表界面看到新倉庫账嚎,且可復(fù)制其URL涂身。
上傳和使用aar
上傳aar
- 修改工程根
build.gradle
文件的內(nèi)容如下:
buildscript {
repositories {
jcenter()
maven {
url "http://127.0.0.1:8081/repository/tech.daking/" // 倉庫URL
}
}
...
}
allprojects {
repositories {
jcenter()
maven {
url "http://127.0.0.1:8081/repository/tech.daking/" // 倉庫URL
}
}
}
- 修改要打包為aar的模塊
build.gradle
文件的內(nèi)容如下:
apply plugin: "maven"
def nexusUrl = 'http://127.0.0.1:8081/repository/tech.daking/' // 倉庫URL
def nexusUsername = 'Nexus賬號(hào)'
def nexusPassword = 'Nexus密碼'
uploadArchives {
repositories {
mavenDeployer {
repository(url: nexusUrl) {
authentication(userName: nexusUsername, password: nexusPassword)
}
pom.project {
packaging "aar" // 打包成aar
groupId "tech.daking.android" // 組織名
artifactId project.name // 庫名
version "1.0.0" // 版本號(hào)
}
}
}
}
-
執(zhí)行
gradle uploadArchives
命令就會(huì)進(jìn)行打包和上傳雄卷。上傳成功后,可在Nexus網(wǎng)站上看到剛上傳的庫蛤售。
使用aar
- 修改工程根
build.gradle
文件的內(nèi)容如下:
buildscript {
repositories {
jcenter()
maven {
url "http://127.0.0.1:8081/repository/tech.daking/" // 倉庫URL
}
}
...
}
allprojects {
repositories {
jcenter()
maven {
url "http://127.0.0.1:8081/repository/tech.daking/" // 倉庫URL
}
}
}
- 修改要依賴此aar的模塊
build.gradle
文件的內(nèi)容如下:
dependencies {
// 格式為:"${group}:${artifactId}:${version}"丁鹉,即組織名:庫名:版本號(hào)。
compile "tech.daking.android:zxing-android:1.0.0"
}