maven私服 的详细介绍和搭建 && 下载慢的注意事项

1.maven私服

1.maven :简单的说就是一个依赖管理的工具。
2.私服就是一个特殊的远程仓库,建立在本地和远程中央仓库之间的一个中间库(中间商),搭建在局域网内,供局域网内的开发人员使用,用来统一管理项目的依赖。
  当本地添加新的依赖时,会向私服请求,存在直接下载到本地,如果私服不存在该依赖,会从外部的远程仓库中下载到私服上,再从私服下载到本地使用。

2.maven仓库的分类

maven仓库分为两种:1.本地仓库 2.远程仓库(私服||中央仓库||其他的公共库)

3.项目获取依赖的仓库顺序

1.当项目新增某个依赖时,会在本地仓库查找是否存在,存在则直接引用
2.当本地仓库不存在时,会在远程私服仓库中查找,查看的顺序是根据配置组-成员的优先级(后面会讲到)
3.当本地仓库不存在需要的依赖时,会从最大的中央仓库中下载到私服,然后再下载到本地。

4.Nexus 仓库的分类

Nexus仓库类型有三种:

1.hosted:宿主仓库(服务器本地仓库):通常我们上传自己的依赖到这一类型的仓库,比如公司的第二方库。

2.proxy:代理仓库:它们被用来代理远程的公共仓库,如maven中央仓库

3.group:仓库组:仓库的集合,把多个仓库的依赖都整合到一个大的集合中来;用来合并多个hosted/proxy仓库,当你的项目希望在多个repository使用资源时就不需要多次引用了,只需要引用一个group即可。

当我们安装好Nexus后,系统会预先自带几个仓库:如图:

下面说说,另外三种仓库的作用:

1.Releases: 这里存放我们自己项目中发布的构建,通常是Release版本的,已经正式发布的。

2.Snapshots:存放临时的依赖,非最终版本、非稳定版本的依赖,比如你正在开发的starter,你的同事需要引用里面的类,就可以发布到这个类型的仓库中。

3.3rd Party:存放第三方的依赖。

5.Nexus的搭建

5.1.基础环境不多说:jdk maven

5.2 安装nexus

需要自取:

链接:百度网盘 请输入提取码

提取码:9i99

1.新建一个目录存放下载的 nexus 安装包
2.解压 tar -zxvf 安装包,会生成两个文件


  
  

3.切换到 bin目录下,xxx/nexus-3.28.1-01/bin (也可以配置环境变量) 

4.直接启动  

./nexus start

启动停止:

 5.查看是否启动成功:ps -ef |grep nexus 

端口修改 ((端口可以在配置文件中修改  xxx/nexus-3.28.1-01/etc/nexus-default.properties))

6.浏览器访问 http://IP:8081

7.登录

账户:admin

密码:查看

cat xxx/sonatype-work/nexus3/admin.password

8.查看自带仓库

安装完毕!

6.Nexus的基本命令

./nexus status #查看启动状态

./nexus stop #停止

./nexus restart重启

注:使用**./nexus start这种后台启动方式看不到实时日志**;用**./nexus run是实时启动可以看到日志。

7.上传依赖到私服操作

7.1.配置setting文件

1.指定本地仓库的位置

<localRepository>E:\maven-repository</localRepository>

2.配置私服的镜像路径

在settings.xml 文件的 mirrors 内添加以下镜像地址

<mirror>
    <id>maven-public</id>
    <name>maven-public</name>
    <mirrorOf>*</mirrorOf>
    <url>http://localhost:8081/repository/maven-public/</url>
</mirror>

3.配置服务器信息

<!-- 服务器的账户密码配置-->
  <servers>
  <server>
  <!-- id可以随便取 但是在pom中引用的时候需要保持一致-->
    <id>maven_release</id>
    <username>admin</username>
    <password>admin</password>
    <filePermissions>664</filePermissions>
    <directoryPermissions>775</directoryPermissions>
    <configuration></configuration>
</server>
<server>
    <id>maven_snapshots</id>
    <username>admin</username>
    <password>admin</password>
    <filePermissions>664</filePermissions>
    <directoryPermissions>775</directoryPermissions>
    <configuration></configuration>
</server>

<server>
  <id>maven-central</id>
  <username>admin</username>
  <password>admin</password>
  <filePermissions>664</filePermissions>
  <directoryPermissions>775</directoryPermissions>
  <configuration></configuration>
</server>
  </servers>

7.2配置项目的pom文件

1.配置pom

需要在pom.xml 中的 project 内添加自动部署构件配置,配置下面的内容

<distributionManagement><!-- 远程部署管理信息 --> 
<!-- 项目部署到私服配置 id和上面server中配置的id一致-->  
        <repository><!--部署项目产生的构件到远程仓库需要的信息 -->
            <id>maven_release</id>
            <name>maven-releases</name>
            <url>http://localhost:8081/repository/maven-releases/</url>
        </repository>
        <snapshotRepository><!-- 如果没有配置该元素,默认部署到repository元素配置的仓库 -->
            <id>maven_snapshots</id>
            <name>maven-snapshots</name>
            <url>http://localhost:8081/repository/maven-snapshots/</url>
        </snapshotRepository>
</distributionManagement>

此处配置了一个repository和snapshotRepository,repository是上传到maven-releases,snapshotRepository是上传到maven-snapshots;

这里的id要和server里面的id分别对应上哦,不然就送你401!!!

注意:在项目中配置1.0-SNAPSHOT这样,带有SNAPSHOT的就会到snapshots仓库,如果不加 SNAPSHOT就会到releases仓库;

7.3 执行命令:

mvn clean deploy 命令,即可发布包到私服仓库中

各参数代表含义为:

 

举例:

mvn clean deploy -DgroupId=com.bat -DartifactId=admin-17 -Dversion=0.0.1-SNAPSHOT -Dpackaging=jar -Dfile=E:\xubin_xinfo\study\gitStore\ruoyi\java17\target\java17-0.0.1-SNAPSHOT.jar -Durl=http://IP:8081/repository/maven-snapshots/ -DrepositoryId=maven_snapshots --settings E:\xubin_xinfo\study\gitStore\apache-maven-3.6.0\conf\settings.xml

方式二:直接用idea 页面操作

上传成功

8.仓库组配置成员的注意事项 ->避免从私服下载依赖慢的问题

现象:.在操作过程中如果不注意细节会导致从私服下载依赖特别慢

原因:主要是我们在配置仓库组的时候,没有调整组成员的顺序,优先级是从上向下递减的。

例子:

我们拿maven-public举例:(阿里云的镜像仓库,创建方式自行百度)

配置注意:把最大的中央仓库放在最后,其他的组根据项目平时的依赖来源进行调整(一般阿里云放第一,三方库放第二即可)!

​注:这只是下载慢的一个原因而已,其他的原因评论区欢迎讨论!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值