Maven高级:第二篇
Posted 雷哒哒
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Maven高级:第二篇相关的知识,希望对你有一定的参考价值。
第一章:Maven私服
1.1-什么是maven私服
公司在自己的局域网内搭建自己的远程仓库服务器,称为私服,私服服务器即是公司内 部的 maven 远程仓库,每个员工的电脑上安装 maven 软件并且连接私服服务器,员工将自 己开发的项目打成 jar 并发布到私服服务器,其它项目组从私服服务器下载所依赖的构件 (jar)。
私服还充当一个代理服务器,当私服上没有 jar 包会从互联网中央仓库自动下载,如下 图:
1.2-搭建私服环境
1.2.1-下载Nexus
Nexus 是 Maven 仓库管理器,通过 nexus 可以搭建 maven 仓库,同时 nexus 还提供强 大的仓库管理功能,构件搜索功能等 。
官网:下载
百度网盘:官网下载太慢,点击此处下载
- 提取码:enb9
1.2.2-安装 nexus
下载后压缩包,直接解压即可。
以管理员身份打开cmd命令,进入bin目录中,执行命令nexus.exe /run
启动服务
测试是否正确安装 :打开浏览器,输入:localhost:8081,完成。
Nexus的默认端口为8081,想修改默认端口可打开nexus-3.9.0-01etc
目录下的nexus-default.properties
文件,修改为想要的端口号即可。
1.2.3-登录
默认密码在解压后的sonatype-work目录下会有一个admin.password文件,打开里面就是默认密码。
登入成功后,记得修改密码(admin123)。
1.2.4-仓库类型
查看 nexus 的仓库:
登录成功后,可以在设置中查看
hosted,宿主仓库,部署自己的 jar 到这个类型的仓库,包括 releases 和 snapshot 两部 分,Releases 公司内部发布版本仓库、 Snapshots 公司内部测试版本仓库
proxy,代理仓库,用于代理远程的公共仓库,如 maven 中央仓库,用户连接私服,私 服自动去中央仓库下载 jar 包或者插件。
group,仓库组,用来合并多个 hosted/proxy 仓库,通常我们配置自己的 maven 连接仓 库组。
1.3-将项目发布到私服
企业中多个团队协作开发通常会将一些公用的组件、开发模块等发布到私服供其它团队 或模块开发人员使用。
如将项目ssm_pojo发布到私服中
第一步:需要在客户端即部署 ssm_pojo工程的电脑上配置 maven环境,并修改 settings.xml 文件,配置连接私服的用户和密码 。
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
releases 连接发布版本项目仓库
snapshots 连接测试版本项目仓库
第二步:配置项目 pom.xml
配置私服仓库的地址,本公司的自己的 jar 包会上传到私服的宿主仓库,根据工程的版本号 决定上传到哪个宿主仓库,如果版本为 release 则上传到私服的 release 仓库,如果版本为 snapshot 则上传到私服的 snapshot 仓库
<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>
注意:pom.xml 这里 和 settings.xml 配置 id对应!
测试
将项目 pojo 工程打成 jar 包发布到私服: 1、首先启动 nexus 2、对 ssm_pojo 工程执行 deploy 命令
1.4-从私服下载jar
? 没有配置 nexus 之前,如果本地仓库没有,去中央仓库下载,通常在企业中会在局域网 内部署一台私服服务器,有了私服本地项目首先去本地仓库找 jar,如果没有找到则连接私 服从私服下载 jar 包,如果私服没有 jar 包私服同时作为代理服务器从中央仓库下载 jar 包, 这样做的好处是一方面由私服对公司项目的依赖 jar 包统一管理,一方面提高下载速度,项 目连接私服下载 jar 包的速度要比项目连接中央仓库的速度快的多。
在maven的settings.xml文件中配置下载模板
<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>
在maven的settings.xml文件中配置激活下载模板
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>
第二章:第三方jar包放入本地仓库或私服
第一步:进入上传界面
第二步:选择第三方jar包并上传
第三步:使用
以上是关于Maven高级:第二篇的主要内容,如果未能解决你的问题,请参考以下文章