最近从同事那里了解到私服Nexus,觉得对通用Library的维护十分便捷,于是晚上加班研究了一番,现在终于搞明白了,趁今天下班之际,将自己的心得记录一下。
一.在Nexus服务器上创建一个远程仓库
点击【Create repository】后,就可以看到列表中生成了远程仓库【FaceRecognitionLibrary】.
二.复制刚才创建的远程仓库【FaceRecognitionLibrary】的URL,后面Library上传用到的仓库地址就是这个,如下图:
三.在自己的Library根目录下创建maven.gradle,内容如下:
apply plugin: 'maven'
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs
}
artifacts {
archives androidSourcesJar
}
afterEvaluate { project ->
uploadArchives {
repositories {
mavenDeployer {
//远程仓库的地址
repository("http://localhost:8081/repository/FaceRecognitionLibrary/") {
//nexus登录的用户名和密码
authentication(userName: "admin", password: "admin123")
}
pom.project {
//项目引用设置
groupId 'com.lib'
artifactId 'facerecognition'
version '1.0.0'
packaging 'aar'//打包的格式
}
}
}
}
}
四.在自己的Library根目录build.gradle中添加如下内容:
(1)添加 apply from: './maven.gradle'
(2)添加 远程仓库地址
buildscript {
repositories {
maven{//仓库的地址
url 'http://localhost:8081/repository/FaceRecognitionLibrary/'
}
}
}
五.make一下项目,会发现在Tasks下面会生成uploadArchives,如图:
六.双击uploadArchives等待上传完成
去Nexus服务器上就可以看到刚才上传的Libray,如图:
七.上传完成后,就可以在主项目中引用自己上传的Libray,引用方法如下:
(1)在项目根目录build.gradle中添加远程仓库地址
allprojects {
repositories {
google()
jcenter()
maven{//仓库的地址
url 'http://localhost:8081/repository/FaceRecognitionLibrary/'
}
}
}
(2)在app根目录build.gradle里添加引用,千万别看错了里面的冒号:
implementation 'com.lib:facerecognition:1.0.0'