1.下载服maven务器工具:Nexus Repository Manager 3
下载地址:https://help.sonatype.com/repomanager3/download。根据自己系统平台下载相应的版本即可。(感谢这位老哥:https://www.cnblogs.com/seve/p/10982603.html)
[图片上传失败...(image-ca457a-1612336142704)]
2.解压后,如我下载的windows版,到目录"你的下载文件的存放目录"\nexus-3.29.2-02-win64\nexus-3.29.2-02\bin下执行
"nexus.exe /run"命令,如果出现错误,检查一下解压的目录是否有中文,因为不能有中文,笔者就遇到过,具体错误提示内容忘记了。
等待几分钟, 输出Started Sonatype Nexus OSS 3.29.2-02,说明服务搭建成功了。
3.访问http://localhost:8081/,开始的用户名是admin,密码会在弹出框中提示一个本地文件的目录,打开即可,按照提示完成登录和密码修改。
4.然后就是配置具体想创建的项目仓库的信息。感谢这里这位老哥的介绍很清楚,笔者也是完全参照他的介绍来操作的:
https://juejin.cn/post/6850418107882831880。
总结起来一共有以下几步:
-
在gradle.properties中配置自己的用户名,地址,项目信息等,如:
在要上传的项目中创建一个gradle文件用来处理代码的上传等事情,如这里新建一个voice_update.gradle文件,内容如下:
apply plugin: 'maven'
apply plugin: 'signing'
configurations {
deployerJars
}
repositories {
mavenCentral()
}
// 判断版本是Release or Snapshots
def isReleaseBuild() {
return !PROJ_VERSION.contains("SNAPSHOT");
}
// 获取仓库url
def getRepositoryUrl() {
return isReleaseBuild() ? MAVEN_REPO_RELEASE_URL : MAVEN_REPO_SNAPSHOT_URL
}
uploadArchives {
repositories {
mavenDeployer {
beforeDeployment {
MavenDeployment deployment -> signing.signPom(deployment)
}
pom.version = PROJ_VERSION
pom.artifactId = PROJ_ARTIFACTID
pom.groupId = PROJ_GROUP_ID
repository(url: getRepositoryUrl()) {
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD) // maven授权信息
}
}
}
}
// 进行数字签名
signing {
// 当 发布版本 & 存在"uploadArchives"任务时,才执行
required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") }
sign configurations.archives
}
//上传源码
task androidSourcesJar(type: Jar) {
classifier = 'sources'
from android.sourceSets.main.java.srcDirs//android.sourceSets.main.java.getSrcDirs()
}
artifacts {
archives androidSourcesJar
}
- 在项目的build.gradle头部加上
apply from: 'voice_update.gradle'
-
在gradle中执行voice_update.gradle中的uploadArchives,即可完成上传,成功后在nexus服务器的后台可以看到。
-
在需要引入代码的地方:
配置仓库地址
加入gradle依赖:
5.安装以上步骤,即可顺利完成自己项目上传至自己maven服务器。值得注意的是,如果要其他人下载自己上传的代码,记得将连接中的localhost改成自己的ip地址。
6.采用这种方式将代码共享给其他人的好处是:
- 更新方便,其他人直接在gradle中用implementation的方式依赖
- 如果自己上传的kotlin的aar,使用的人还可以看到代码和注释(因为kotlin直接本地打包成aar导入到其他项目后是看不到代码和注释的)。