Brooks

珍惜生命中的每一次冲动

0%

使用Nexus搭建Maven本地私服

概述

  1. 公司业务-核心或基础模块-独立研发,提供aar对其他业务线支持
  2. 在工作中可能存在有些开发机器不能上网
  3. 大量的机器获取jar包会导致公司网络很慢
  4. 有时候公司会自己发布自己的项目版本,其他的项目可能会依赖引用到
  5. 等…..

综上等原因,我们需要用到Maven本地仓库对项目进行管理。

介绍

Nexus是Maven的仓库管理器,用来搭建一个本地仓库服务器,这样做的好处便于管理,节约网络资源, 速度快,可以通过SNAPSHOT版本控制,开进行模块间的高效依赖开发。

安装

下载

1
wget https://download.sonatype.com/nexus/3/nexus-3.31.1-01-unix.tar.gz

也可以在这里-选择 历史版本

解压

1
tar -zxvf nexus-3.31.1-01-unix.tar.gz

启动服务

1
2
3
cd nexus-3.31.1-01/bin

./nexus start

停止服务

1
./nexus stop

访问用户界面

1
2
3
4
5
6
http://localhost:8081/

用户名:admin
密 码: 初始密码可以sonatype-work里找到,使用cat命令获取
cat ./sonatype-work/nexus3/admin.password
c28197d3-0673-4399-b634-effa06b8450a #初始密码

登录成功

创建用户

创建brooks用户,成功后使用brooks登录。

image-20210715233429927

创建仓库

设置页面点击 Create repository

image-20210715233751831

选择maven2 hosted

image-20210715234019281

image-20210715234402305

点击Create repository开始创建。

查看创建的仓库

image-20210715234740899

上传aar到仓库

打开Project的build.gradle文件

1
2
3
4
5
6
allprojects {
repositories {
...
mavenLocal() //添加这一行,告诉AS,我们使用自己的仓库
}
}

打开module的build.gradle文件

1
2
3
4
5
/**
* release 和 snapshot 仓库的区别
* release 仓库不能重复上传同一版本号,版本不能覆盖,只能迭代 ,发布正式版本的时候使用
* snapshot 仓库允许版本覆盖。当我上传多次上传同一个版本到 snapshot 仓库,会自动在版本号上添加时间戳来区分,开发时使用。
*/

添加以下配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 添加插件,上传到本地 maven 仓库
apply plugin: 'maven'

//定义上传行为
uploadArchives {
repositories.mavenDeployer {
repository(url: 'http://localhost:8081/repository/com.wali.livelib/'){ //url,从仓库详情里获取
authentication(userName:'brooks',password:'brooks') //用户名密码,可以配置到文件里
}
pom.groupId = 'com.brooks.live' //组名
pom.artifactId = 'network' //项目id
pom.version = '1.0.0' //版本
}
}

编译aar并上传

image-20210716000749534

上传成功

image-20210716001240233

项目引用aar

在App的build.gradle文件下添加:

1
2
3
4
5
allprojects {
repositories {
maven { url "http://localhost:8081/repository/com.wali.livelib/" } //添加仓库url地址
}
}

在dependencies下添加依赖:

1
dependencies {	...	implementation 'com.brooks.live:network:1.0.0'}

点击同步,完成!

感谢:

https://help.sonatype.com/repomanager3/installation/installation-methods

欢迎关注我的其它发布渠道