本地搭建Maven私服
# Maven 私服
私服(私有仓库)是一种架设在局域网内的 Maven 仓库服务器,它能够代理广域网中的远程仓库,供局域网内的用户访问。私服主要有以下作用:
- 缓存远程仓库的依赖,减少外网访问,提高依赖获取的速度。
- 部署团队内部开发的组件,供团队成员共享。
- 代理中央仓库和其他公共仓库,统一管理依赖。
常用的私服工具是 Nexus,它由 Sonatype 公司开发,支持 Maven 仓库的管理。
# 1. 私服的下载与启动
# 下载 Nexus
访问 Nexus 下载页面 (opens new window) 选择适合的版本进行下载。
# 启动 Nexus
解压下载的 Nexus 文件。
进入解压后的目录,打开
bin
文件夹。在命令行中运行以下命令启动 Nexus:
nexus.exe /run nexus
1启动后,访问
http://localhost:8081
进入 Nexus 控制台。
# 自定义配置
- 修改端口:进入
nexus-default.properties
文件(路径为etc/
目录),修改其中的application-port
属性即可更改端口号。 - 调整内存配置:进入
bin/
目录下的nexus.vmoptions
文件,修改 JVM 参数调整 Nexus 的内存占用。
# 2. Nexus 仓库分类
Nexus 中的仓库类型主要包括:
宿主仓库(hosted):
- 保存无法从中央仓库获取的资源,如自主研发或第三方非开源的组件。
- 分为
releases
(正式版)和snapshots
(快照版)两种类型。
代理仓库(proxy):
- 代理远程仓库,通过私服访问中央仓库或其他公共仓库。
- 例如,当依赖包在本地找不到时,私服会先从代理仓库获取。
仓库组(group):
- 将多个仓库组合在一起,简化配置,便于统一管理。
- 仓库组本身不保存资源,它仅用于设计和管理多个仓库。
# 3. 上传与下载配置
在实际开发中,常见的操作是将项目打包并上传到私服,同时配置项目从私服下载依赖。
# 配置步骤:
配置私服的用户名和密码
打开 Maven 根目录下的
settings.xml
文件,在<servers>
节点中添加私服的认证信息:<servers> <server> <id>kbt-release</id> <username>admin</username> <password>admin1234</password> </server> <server> <id>kbt-snapshots</id> <username>admin</username> <password>admin1234</password> </server> </servers>
1
2
3
4
5
6
7
8
9
10
11
12注意:
id
必须与项目pom.xml
文件中的配置保持一致。配置私服的仓库地址
在
settings.xml
文件中配置私服的镜像地址:<mirrors> <mirror> <id>nexus-kbt</id> <mirrorOf>*</mirrorOf> <url>http://localhost:8081/repository/maven-public/</url> </mirror> </mirrors>
1
2
3
4
5
6
7其中,
*
代表代理所有仓库。Maven 下载依赖时,会按照镜像的顺序依次查找。在项目的
pom.xml
中配置私服的发布地址在项目的
pom.xml
文件中添加发布配置:<distributionManagement> <repository> <id>kbt-release</id> <url>http://localhost:8081/repository/kbt-release/</url> </repository> <snapshotRepository> <id>kbt-snapshots</id> <url>http://localhost:8081/repository/kbt-snapshots/</url> </snapshotRepository> </distributionManagement>
1
2
3
4
5
6
7
8
9
10repository
配置用于发布正式版,snapshotRepository
配置用于发布快照版。id
必须与settings.xml
中的id
保持一致。发布到私服
使用以下命令将项目打包并发布到私服:
mvn deploy
1或者使用 IDEA 的界面进行上传:
# 4. Nexus 的用户登录与管理
- 默认用户名为
admin
,初始密码保存在sonatype-work/nexus3/admin.password
文件中。 - 登录后可以修改密码、创建用户、管理仓库以及配置仓库策略等。
# 5. 常见问题与注意事项
- 上传失败:确保
settings.xml
中的id
与pom.xml
中的id
一致,否则可能会导致权限问题。 - 仓库选择:发布 SNAPSHOT 版本时,请确保版本号中包含
-SNAPSHOT
,以便自动上传到snapshots
仓库。 - 代理仓库的配置顺序:Maven 会按照镜像配置的顺序依次查找仓库,因此请根据实际情况调整仓库的优先级。
编辑此页 (opens new window)
上次更新: 2024/12/28, 18:32:08