概述
- Nexus是一個基于maven的倉庫管理的社區項目。主要的使用場景就是可以在局域網搭建一個maven私服,用來部署第三方公共構件或者作為遠程倉庫在該局域網的一個代理。
Nexus安裝
Nexus依賴JDK1.8+,確保設備上已安裝配置JDK1.8+的開發環境。
Nexus官網,找到Nexus Repository Manager 3并下載。
解壓到任意目錄下,在終端中移動到該目錄,再進入到
nexus-<version>/bin
下。執行./nexus run
。-
服務起來后,默認端口為8081。在瀏覽器上輸入
http://127.0.0.1:8081/
即可訪問到Nexus。Nexus首頁
Nexus使用
首次進入Nexus
- 點擊Nexus首頁的右上角Sign in,使用默認的管理員賬號進行登錄。(賬號名為admin,密碼為admin123。)
創建用戶
-
進入創建用戶的界面。
進入創建用戶界面的步驟-w417 -
填寫用戶資料并提交即可。注意以下幾點:
ID和Password關系到Gradle的打包上傳,要牢記。
Status設為Active。
Roles是角色權限控制,可選值有
nx-admin
、nx-anonymous
,可多選。
創建倉庫
-
進入創建倉庫界面。
進入創建倉庫界面的步驟-w411 -
Recipe的選擇:
hosted:本地倉庫,用于部署個人或團隊的公共構件。
proxy:代理倉庫,用于代理遠程倉庫,如maven中央倉庫。
group:倉庫組,用來合并多個hosted/proxy倉庫。
-
填寫倉庫資料并提交。注意以下幾點:
Name是倉庫名,是該倉庫的唯一標識,常用反向域名來書寫,如tech.daking。
-
創建成功后,可在倉庫列表界面看到新倉庫,且可復制其URL。
倉庫列表界面-w1229復制倉庫URL-w475
上傳和使用aar
上傳aar
- 修改工程根
build.gradle
文件的內容如下:
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
文件的內容如下:
apply plugin: "maven"
def nexusUrl = 'http://127.0.0.1:8081/repository/tech.daking/' // 倉庫URL
def nexusUsername = 'Nexus賬號'
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" // 版本號
}
}
}
}
-
執行
gradle uploadArchives
命令就會進行打包和上傳。上傳成功后,可在Nexus網站上看到剛上傳的庫。剛上傳的庫庫信息-w341
使用aar
- 修改工程根
build.gradle
文件的內容如下:
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
文件的內容如下:
dependencies {
// 格式為:"${group}:${artifactId}:${version}",即組織名:庫名:版本號。
compile "tech.daking.android:zxing-android:1.0.0"
}