欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

09_Maven核心_Maven和私服怎么关联在一起

程序员文章站 2022-05-09 15:59:39
...

通过前两节应该能够知道私服的搭建和使用:

07_Maven核心_搭建私服nexus

08_Maven核心_如何使用私服

下面将私服和Maven联系起来!

1.前面介绍过如果没有私服的情况下,Maven会直接使用超级POM中的*仓库去下载我们需要的构件:

    <repository>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>central</id>
      <name>Maven Repository Switchboard</name>
      <url>http://repo1.maven.org/maven2</url>
    </repository>

有了这个*仓库,我们需要的构件基本都能下载到。但是为了节约一下带宽,等等原因。我们建立了私服。

前面已经介绍过镜像。我们可以通过镜像来代理我们的远程仓库。镜像的配置:

     <mirror>
       	   <id>Nexus</id>  
       	   <name>Nexus public mirror</name>
           <mirrorOf>central</mirrorOf>  
           <url>http://localhost:8081/nexus/content/groups/public</url>
     </mirror>

 这样如果请求的是*仓库central。都会转向请求私服。

看一下这里的URL:http://localhost:8081/nexus/content/groups/public

我们打开私服:


09_Maven核心_Maven和私服怎么关联在一起
            
    
    博客分类: Maven Maven和nexus的关系 

红色阴影部分的URL和镜像中的URL一样。这就是说:请求*仓库的request都会转向请求私服中的仓库组public repositories。然后再看看仓库组含有那些仓库:


09_Maven核心_Maven和私服怎么关联在一起
            
    
    博客分类: Maven Maven和nexus的关系 
这样请求*仓库会转向请求私服中的仓库组,然后再遍历仓库组,来查找需要的构件。也许你会问:这样还不是要请求*仓库才能下载到构件嘛,事实上是这样的,但只是第一次请求会去*仓库。因为私服会将下载的所有构建都保存在私服中,这样后面在来人参与项目开发,就会直接从私服中下载,不经过外网。

最后回顾一下Maven和私服之间的关联:镜像

构件请求流程:

请求构件-->进入*仓库-->*仓库被镜像-->请求私服-->请求仓库组-->依次遍历仓库组中的仓库-->找到所需的构件-->保存到私服(为下次下载做准备)-->下载到本地仓库。

中间的配置关系:

<dependency>
	<groupId>org.apache.ant</groupId>
	<artifactId>ant</artifactId>
	<version>1.8.2</version>
</dependency>

 因为所有的POM都继承超级POM,所以会请求*仓库:

    <repository>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>central</id>
      <name>Maven Repository Switchboard</name>
      <url>http://repo1.maven.org/maven2</url>
    </repository>

 在setting中配置了镜像,这样所有的请求有进入到镜像中(私服):

     <mirror>
       	   <id>Nexus</id>  
       	   <name>Nexus public mirror</name>
           <mirrorOf>central</mirrorOf>  
           <url>http://localhost:8081/nexus/content/groups/public</url>
     </mirror>

 因为URL,所以请求私服中相应的仓库。

<url>http://localhost:8081/nexus/content/groups/public</url>

 私服又会遍历仓库组中的仓库,下载构件

 

  • 09_Maven核心_Maven和私服怎么关联在一起
            
    
    博客分类: Maven Maven和nexus的关系 
  • 大小: 77.3 KB
  • 09_Maven核心_Maven和私服怎么关联在一起
            
    
    博客分类: Maven Maven和nexus的关系 
  • 大小: 27.2 KB
相关标签: Maven和nexus的关系