一,私服仓库的应用场景
私服主要应用在多模块开发过程中,中央仓库主要存放着开源的框架或软件,假如企业开发了一个项目这个项目有N个模块,这些模块由不同的程序员进行开发,模块之间需要相互调用,这时本地库和中央仓库都没有办法解决
- 本地仓库:无法解决不同机器开发模块之间的调用
- 中央仓库:无法存储有版权的资源
而私服就可以很好应对这样的场景,它由于私人/企业进行搭建,主要用于内部使用,它介于本地仓库和中央仓库之间
私服仓库的作用:解决企业多模块开发存储依赖难题
私服的仓库分类:
- 宿主仓库hosted:保存无法从中央仓库获取的资源,如自主研发项目,第三方非开源项目
- 代理仓库proxy:代理远程中央仓库
- 仓库组group:将若干个仓库组成一个群组,简化配置,仓库组不能保存资源
私服仓库的具体产品有很多,一般都使用nexus来搭建私服,阿里云的maven镜像仓库也是使用这个私服软件
二,Nexus私服的安装启动(windowns)
一,Nexua的下载
Nexus是Sonatype公司的一款maven私服产品
下载地址:https://help.sonatype.com/repomanager3/download/download-archives---repository-manager-3
我在官网下载总是404,建议下载一个迅雷通过迅雷下载资源(我通过这种方式下载的)
二, 安装后的目录结构
Nexus目录主要分为两个:
- nexus-3.34.1-01:程序安装目录
- sonatype-work:工作目录
1,安装目录:
2,工作目录
三,启动nexus
启动访问分三步:
- 进入安装目录的bin路径中
- 运行命令:nexus /run nexus
- 访问:localhost:8081
修改基础配置信息:
- 安装路径下的etc目录中nexus-default.properties文件保存有nexus基础配置信息,如:端口,主机地址等
修改服务器运行配置信息:
- 安装路径下bin目录中nexus.vmoptions文件保存有nexus服务器启动对应的配置信息,如:默认占用的内存空间
注:第一次登录时需要密码,这个密码载工作目录的admin.password文件中,复制粘贴即可
三,Nexus私服的简单操作
①
②
③ 库的创建类型
三,本地仓库访问nexus私服
一般开发过程中都是通过本地仓库连接私服进行上传和下载,虽然nexus可以手动上传和下载但开发过程中还是过于麻烦
主要配置上传和下载的地址:
- 上传的地址:这个地址是配置在项目中
- 下载的地址:这个地址配置在本地仓库中,项目拉取主要通过本地仓库本地仓库通过私服
配置本地仓库的setting.xml文件
步骤:
- 配置访问私服的用户和密码
- 配置访问私服库的地址
① 配置私服的用户和密码
<!--添加下面的内容--> <!--添加访问私服的用户,severs可以添加多个用户--> <servers> <!--添一个具体用户,一个server代表一个用户--> <server> <!--当前用户的ID自定义,依赖上传时需要和这个id保持一致--> <id>deploymentRepo</id> <!--私服的用户名--> <username>repouser</username> <!--私服的密码--> <password>repopwd</password> </server> </servers>
② 配置下载的地址(和配置镜像仓库差不多)
<mirror> <!--自定义id--> <id>wql-nexus</id> <!--拦截那个仓库的依赖下载请求,*表示所有--> <mirrorOf>*</mirrorOf> <!--拦截请求后需要转发的地址,这里填私服库的地址--> <url>http://localhost:8081/repository/maven-public/</url> </mirror> </mirrors>
注:mirrorOf的作用为拦截请求并转发,*表示当前mirror为所有仓库镜像,所有远程仓库请求地址为当前mirror对应的URL( having it mirror all repository requests)。所以我把此处的mirrorOf改为resp1,此时当前mirror只会拦截仓库resp1的依赖请求,对于其他请求会到远程中央仓库去下载,但下载的速度非常的慢,同时出现连接超时的现象
四,IDEA项目访问私服并上传依赖
之前说了配置私服需要配置两个,在本地仓库的配置是针对下载依赖连接私服,在项目中配置是针对组件上传连接私服
① 项目配置私服发布依赖:
<!--发布配置管理--> <distributionManagement> <!--假如项目是发布版就通过这个标签进行上传--> <repository> <!--这个id是一个server用户,之前在本地仓库中配置用户,把id添进来进行--> <id>wql-nexus</id> <!--上传的url地址,这里可以是私服库或库组的地址--> <url>http://localhost:8081/repository/maven-public/</url> </repository> <!--假如项目是快照版就通过这个标签进行上传--> <snapshotRepository> <!--这个id是一个server用户,之前在本地仓库中配置用户,把id添进来进行--> <id>wql-nexus</id> <!--上传的url地址,这里可以是私服库或库组的地址--> <url>http://localhost:8081/repository/maven-public/</url> </snapshotRepository> </distributionManagement>
② 点击deploy进行上传即可
Comments | NOTHING
Warning: Undefined variable $return_smiles in /www/wwwroot/wql_luoqin_ltd/wp-content/themes/Sakura/functions.php on line 1109