1 准备工作
笔者将仓库建立在阿里云服务器上,因此需要一些准备工作。当然,使用本地电脑也可以。
使用本地电脑可以直接跳过1.1,直接从1.2开始
1.1 一台云服务器
1.1.1 安装openssh-clients
同步文件使用的是scp命令,scp命令集成在openssh-clients工具中
$ yum install openssh-clients
1.1.2 安装jdk
a. 下载jdk文件,上传到服务器中
//scp {filepath} {user}@{ip}:{path}
$ scp ~/Download/jdk-8u161-linux-x64.tar.gz arman@xx.xxx.xx.xxx:/home/arman
b. 解压jdk包
$ tar -zxvf jdk-8u161-linux-x64.tar.gz
c. 修改/etc/profile
文件:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
//other
//...
d. 执行source命令source /etc/profile
1.2 安装Nexus
1.2.1 下载
a. 页面打开后是这个样子的,如果有出入请自行寻找GET REPOSITORY OSS链接
b. 选择版本
40230480.pngps: 如果下载文件只有几K,关闭迅雷或者其他下载工具,使用浏览器下载
1.2.2 安装和运行
a. 同步文件到服务器
scp file user@ip:path
b. 解压
$ tar -zxvf nexus-2.14.8-01-bundle.tar.gz
c. 运行
nexus-2.14.8-01/bin/nexus start
d. 公开端口8081,阿里云在控制台添加安全规则,其他请自行摸索
2. Nexus使用
主页地址:http://ip:8081/nexus
详细介绍请参考这篇文章
3. 使用Android Studio上传aar到私有仓库
3.1 在gradle.properties
中配置变量
MAVEN_URL=http://ip:8081/nexus/content/repositories/release/
MAVEN_SNAPSHOT_URL=http://ip:8081/nexus/content/repositories/Snapshots/
#maven groupId
GROUP=public
#账号
NEXUS_USERNAME=admin
#密码
NEXUS_PASSWORD=admin123
# groupid(最终你引用时的名字)
GROUP_ID=com.group.id
# type
TYPE=aar
# description
DESCRIPTION=dependences lib
3.2 在lib的buil.gradle
中创建task
apply plugin: 'com.android.library'
apply plugin: 'maven'
android {
//others
//上传task
uploadArchives {
configuration = configurations.archives
repositories {
mavenDeployer {
snapshotRepository(url: MAVEN_SNAPSHOT_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
repository(url: MAVEN_URL) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
pom.project {
//版本,有更新时修改版本号,在上传
version '1.0.0'
//名字
artifactId 'artifactId'
groupId GROUP_ID
packaging 'aar'
description 'XXXXX'
}
}
}
}
artifacts {
//编译的源码类型
archives file('lib.aar')
}
}
//others
3.3 上传
同步工程,在右侧的Gradle
面板中选择执行下图task命令
4 使用者添加依赖
a. 添加仓库地址
allprojects {
repositories {
//others
maven { url 'http://ip:8081/nexus/content/groups/public/' }
}
}
b. 添加依赖
dependencies {
//others
compile('com.group.id:artifactId:1.0.1')
}
网友评论