概述
- 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首页的右上角Sign in,使用默认的管理员账号进行登录。(账号名为admin,密码为admin123。)
创建用户
-
进入创建用户的界面。
-
填写用户资料并提交即可。注意以下几点:
ID和Password关系到Gradle的打包上传,要牢记。
Status设为Active。
Roles是角色权限控制,可选值有
nx-admin
、nx-anonymous
,可多选。
创建仓库
-
进入创建仓库界面。
-
Recipe的选择:
hosted:本地仓库,用于部署个人或团队的公共构件。
proxy:代理仓库,用于代理远程仓库,如maven中央仓库。
group:仓库组,用来合并多个hosted/proxy仓库。
-
填写仓库资料并提交。注意以下几点:
Name是仓库名,是该仓库的唯一标识,常用反向域名来书写,如tech.daking。
-
创建成功后,可在仓库列表界面看到新仓库,且可复制其URL。
上传和使用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网站上看到刚上传的库。
使用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"
}