说明
为保留项目的历史发布版本,以及方便后续自动化部署脚本的编写,需要将每次发布的软件包上传到中央仓库进行保留,以下是前后端的配置方式。
==注意==
- 为方便统计,所有软件版本从 0.0.1 开始,即 主版本.次版本.编译版本;
- 每次发布版本,版本号必须不同,主版本未经项目组领导同意,禁止升级,次版本号只有在发布重大BUG修复或增加新功能后,由开发人员决定是否升级次版本号,编译版本号每次发布都往上递增;
- 后端修改好 maven 和 pom 配置后,使用 maven deploy 的方式打包时会自动将包上传一份到 Nexus 中央仓库,无需人为干涉;
- 为方便管理,后端测试和正式环境必须统一使用 RELEASE 格式的版本包,因为 只有 RELEASE 格式的包才能手动上传;开发环境可以打包成 SNAPSHOT,也可以打包成 RELEASE;
- 前端必须将 zip 包命名成
项目名-版本号-RELEASE.zip
格式后,再登录nexus.china-snow.net
按要求填写上传表单手动上传; - 当在 nexus 中保留了历史版本文件后,服务器上可以不必再保留历史文件了,需要回滚时可以从 Nexus 中央仓库下载历史文件;
配置使用 Nexus 中央仓库加速
修改 Maven 配置文件
settings.xml
文件,修改 内容1
2
3
4
5
6
7
8<mirrors>
<mirror>
<id>nexus</id>
<mirrorOf>*</mirrorOf>
<name>Nexus 15</name>
<url>http://nexus.china-snow.net/repository/maven-public/</url>
</mirror>
</mirrors>如下图所示:
配置 Maven 部署成品到 Nexus
修改 Maven 的配置文件
settings.xml
文件,增加servers
内容,如下1
2
3
4
5
6
7
8
9
10
11
12
13<servers>
<server>
<id>releases</id>
<username>deployer</username>
<password>123456</password>
</server>
<server>
<id>snapshots</id>
<username>deployer</username>
<password>123456</password>
</server>
</servers>修改项目的
pom.xml
文件,添加以下内容:1
2
3
4
5
6
7
8
9
10
11
12<distributionManagement>
<repository>
<id>releases</id>
<name>API Release Repositories</name>
<url>http://nexus.china-snow.net/repository/api-releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>API Snapshot Repositories</name>
<url>http://nexus.china-snow.net/repository/api-snapshots/</url>
</snapshotRepository>
</distributionManagement>注意:
distributionManagement
模块需要与build
模块同级id
的值必须与 Maven 配置文件中server
的id
值一样;name
随便填,能自己看懂就好,最好是能说明该仓库是什么仓库;url
仓库的 URL 地址,需要登录 Nexus 查看每个项目的仓库地址,然后这里更换为项目对应的仓库地址;
每次发布时,需要修改 pom 中 version 的值,当值为 SNATSHOT 时,会自动上传 jar 包到 snapshotRepository 分支,当值为 RELEASE 时,会将 jar 包上传到 repository 分支;如下如所示:
部署 jar 包到中央仓库,出现如下提示说明部署成功了
前端上传文件到仓库
将前端打包成 zip 文件,然后修改文件名为
项目名称-版本号-RELEASE.zip
;打开浏览器访问网址 nexus.china-snow.net,点击右上角
Sign in
进行登录;登录后点击左边 Upload 选项,然后在右边网页选择自己的项目名称,点击项目名,进入上传文件表单填写页面
点击 Browse 按钮,选择需要上传的文件,以及手动输入以下表单内容
- Group ID: 软件包分组,前端值为
com.chinasnow.web
; 后端值为com.chinasnow.app
; - Artifact ID: 软件包名称(项目名称),如
qdmwms
,sal
,hr
; - Version: 版本号,如: 0.0.1,代表 主版本号.次版本号.编译版本号;
- Group ID: 软件包分组,前端值为
填好表单后点击 Upload 即可将包上传到 Nexus 中央仓库,如下图;