现在我们企业级开发基本上都是maven 项目,很多时候项目都是架构师搭建好的,pom.xml文件项目里直接配好,settings.xml文件都是复制粘贴过来直接用,也只是过来用,maven clean,install,deploy 等命令也直接能用,但是为什么这样用,如果自己搭建一个私服,自己配置pom,settings 就不会了,下面就是根据自己搭建私服,配置私服的一些总结
参考文章 https://blog.csdn.net/lh87522/article/details/43281281
1,maven 常用的作用
下载依赖jar,发布项目到私服 ,对项目打包编译等操作
2,maven 仓库介绍
仓库组:即中央仓库,自己公司项目的jar 仓库添加到仓库组里,下载jar 其实是配置的仓库组
中央仓库: 包括我们项目所需要的大部分开源jar,一般项目用阿里云的中央仓库即可,下载速度快
私有仓库:(私服)包括组的概念,即中央仓库,自己公司项目的jar 仓库 ,再有其他所需要的仓库添加到仓库组里
通过引用仓库组,下载自己所需要的jar
本地仓库:通过maven项目pom文件把项目所需要的jar下载到本地使用
3,maven 描述
maven 项目主要是对 项目所需要的jar 的管理,没有maven 项目之前,我们需要什么jar(ssm 所需要的jar)
得去官网去下载,然后手动添加到自己的项目里,把java(/web) 项目编程maven 项目后,我们只需要配置好
中央仓库(搭建自己的私服)maven 的setting 配置文件连接中央仓库,在项目的pom.xm文件 添加我们所需要的
jar 配置,就可以连接中央仓库下载jar ,
4,maven 仓库类型介绍
首先看type 它是我们仓库的类型,
group :仓库组,前面介绍过了,把所需要的开源仓库,私有仓库放到仓库组里,直接配置仓库组下载依赖jar
hosted : 针对开发这仓库,上传自己依赖的第三方jar,或者自己项目的jar
proxy :来自开源网站的一些依赖,如apache、中央仓库(central)、codehaus;
virtual,主要用于maven1,很少用到;
Releases (是发布仓库),Snapshots(开发仓库) 这两个仓库都是默认的,在项目开发阶段 deploy 上传项目到对应的仓库,
项目版本,发布路径,私服用户名密码一定对应上,否则上传报错
如果第一张图版本 指向的是 发布仓库的路径时候(即使settings 用户名密码配对,id 跟 仓库路径id一直,仓库权限也没问题),deploy会失败,根据-snapshot 这个会识别是发布版本,而jar的版本是开发版本,所以失败,如果不加-snapshot ,会发布到发布仓库
5,maven 配置
pom 文件增加如下配置,打包发布到 开发仓库
<distributionManagement>
<snapshotRepository> <id>snapshots</id> <name>Nexus Snapshot Repository</name> <url>http://47.92.73.196:8081/nexus/content/repositories/snapshots/</url> </snapshotRepository> </distributionManagement>
settings.xml 增加
<servers>
<!--指明发布项目时用的用户名密码 -->
<server>
<id>snapshots</id> <!--开发仓库 -->
<username>admin</username>
<password>admin123</password>
</server>
注意这两个配置的id 要一样 ,版本配置加上-snapshot ,仓库配置权限打开,即可发布项目到私服上