搭建私服环境
安装并启动nexus
- 以管理员身份运行命令行窗口
- 切到nexus文件所在目录 ,复制路径
3. 在命令行窗口输入如下命令,安装并启动
4. 如上图所示表示启动成功
-
查看 nexus 的配置文件
conf/nexus.properties
-
访问
http://localhost:8081/nexu
网址并登录
仓库的类型
- hosted,宿主仓库,部署自己的 jar 到这个类型的仓库,包括 releases 和 snapshot 两部
分,Releases公司内部发布版本仓库、 Snapshots 公司内部测试版本仓库 - proxy,代理仓库,用于代理远程的公共仓库,如 maven 中央仓库,用户连接私服,私
服自动去中央仓库下载 jar 包或者插件。 - group,仓库组,用来合并多个 hosted/proxy 仓库,通常我们配置自己的 maven 连接仓
库组。 - virtual(虚拟):兼容 Maven1 版本的 jar 或者插件
- central :代理仓库, 代理中央仓库
- apache-snapshots :代理仓库,存储 snapshots 构件,代理地址
https://repository.apache.org/snapshots/
- central-m1 :virtual 类型仓库,兼容 Maven1 版本的 jar 或者插件
- releases : 本地仓库,存储 releases 构件。
- snapshots : 本地仓库,存储 snapshots 构件。
- thirdparty :第三方仓库
- public::仓库组
将项目发布到私服
第一步: 需要在客户端
即部署 ssm_dao
工程的电脑上配置 maven环境,并修改本地仓库的conf目录
下的settings.xml
文件,配置连接私服的用户和密码 。
此用户名和密码用于私服校验,因为私服需要知道上传的账号和密码是否和私服中的账号和
密码一致。
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
第二步: 配置dao项目 pom.xml
配置私服仓库的地址,本公司的自己的 jar 包会上传到私服的宿主仓库,根据工程的版本号决定上传到哪个宿主仓库,如果版本为 release 则上传到私服的 release 仓库,如果版本为snapshot 则上传到私服的 snapshot仓库
在工程dao子模块的pom.xml 中加入如下配置
<!-- 上传dao模块到私服-->
<distributionManagement>
<repository>
<id>releases</id>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
测试是否发布到私服
将项目 dao 工程打成 jar 包发布到私服:
- 首先启动 nexus
- 对 ssm_dao工程执行 deploy 命令
根据本项目pom.xml中version
定义决定发布到哪个仓库,如果version定义为snapshot
,
执行deploy后查看nexus的snapshot仓库
,如果version定义为release
则项目将发布到nexus
的release仓库
,本项目将发布到 snapshot仓库:
从私服下载 jar包
在本地仓库的setting.xml
文件中继续添加配置
<!-- 下载jar包配置 -->
<profile>
<!--profile的id -->
<id>dev</id>
<repositories>
<repository> <!--仓库id,repositories可以配置多个仓库,保证id不重复 -->
<id>nexus</id> <!--仓库地址,即nexus仓库组的地址 -->
<url>http://localhost:8081/nexus/content/groups/public/</url> <!--是否下载releases构件 -->
<releases>
<enabled>true</enabled>
</releases> <!--是否下载snapshots构件 -->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories> <!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 -->
<pluginRepository> <!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
<id>public</id>
<name>Public Repositories</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
如果本地仓库没有daojar包,则启动工程时需要使用dao的jar包,就会去本地仓库找,本地仓库找不到,就会去私服找,找到后下载到本地仓库。
程序照样运行成功,再次检查本地仓库就会发现 dao jar包又回来了。