设置默认先从nexus查找jar包

Nexus里面的工厂有4种类别:


(1)group类型:把多个工厂类别加到一个工厂类别中


(2)hosted类型:hoseted类型工厂是服务于局域网的。当我们对项目执行mvn:deploy命令时,会把项目进行打包上传到hosted类型工厂(仓库)中。

这里稍微说明一下mvn:install和mvn:deploy命令的区别:mvn:install是把项目打包上传到本地仓库中,而mvn:deploy命令则是把项目打包上传到nexus的hosted对应的工厂(仓库)中。hoseted包含三个工厂:Snapshots、Releases、3rd party

Snapshots:比如有个A项目,版本是0.0.1-SNAPSHOTS:

[html]  view plain  copy
  1. <groupId>com.carlo</groupId>  
  2.   <artifactId>xxx_service</artifactId>  
  3.   <version>0.0.1-SNAPSHOT</version>  
  4.   <packaging>jar</packaging>  
当对A项目执行mvn:deploy命令后,会把A项目打包成jar包,并上传到hoseted类型中的Snapshots工厂(仓库)中。


Releases:比如有个B项目,版本是0.0.1-RELEASES:

[html]  view plain  copy
  1. <groupId>com.carlo</groupId>  
  2.   <artifactId>xxx_core</artifactId>  
  3.   <version>0.0.1-RELEASES</version>  
  4.   <packaging>jar</packaging>  
当对B项目执行mvn:deploy命令后,会把B项目打包成jar包,并上传到hoseted类型中的Releases工厂(仓库)中。


3rd party:一般情况下,我们都是去maven的中央仓库下载依赖包,但是maven中央仓库中可能不存在某些jar包。这个时候我们就要去这些jar包的官方网站进行下载。对于这些jar包,怎么给maven进行管理呢?hosted类型里提供了3rd party这个工厂(仓库)。当我们把这些jar包都上传到3rd party这个工厂后,在项目的pom.xml声明了jar包信息,就会自动的到这里来下载对应的依赖包啦。

同时,在nexus管理界面里,我们发现,只有3rd party才有Artifact Upload(上传jar包)的选项。我们来操作一下:



点击“Upload Artifact(s) ”,上传jar包到3rd party工厂(仓库)中。接着我们点击“Browse Storage”进行查看上传的jar包:



(3)proxy类型:当我们在项目的pom.xml声明了某个jar包的时候,会从本地仓库查找,如果没有,就会去局域网共享仓库(nexus)中找,再找不到的话,局域网共享仓库(nexus)就会和maven中央仓库打交道,从maven中央仓库中下载对应的jar包,会存放到proxy类型的Central工厂(仓库)里,然后再提交到用户本地仓库中。

proxy类型的工厂还包括:Apache Snapshots 和 Codehaus Snapshots,其中Apache Snapshots工厂专门来存放从apache下载下来的Snapshots版本的开发包;相同的, Codehaus Snapshots工厂专门来存放从Codehaus 下载下来的Snapshots版本的开发包。

(4)virtual类型:这种是maven1的,以后基本不会用到或者很少会用到,所以不用过多理会。


接下来我们来配置一下,怎么配置从nexus里下载依赖包。

通常情况下,我们会在项目的pom.xml里使用<repositories>标签来配置:


如上,每一个仓库都要配置一次,太麻烦了。在前面的内容中,我们有提到group类型的工厂,该类型的工厂包含了3rd party、Central、Relases、Snapshots这几个工厂,所以这里我们的配置可以简化为:



配置好了,我们来测试一下。看看是否是从nexus下载依赖到本次仓库(流程是:先从本地仓库找,本地仓库找不到,则去nexus的group类型工厂【即3rd party、Central、Relases、Snapshots这几个工厂】里查找,找不到的话,会去maven的中央仓库中下载到nexus中,然后把依赖提交到本地仓库)。

添加struts2-core依赖包到pom.xml中:

[html]  view plain  copy
  1. <dependency>  
  2.         <groupId>org.apache.struts</groupId>  
  3.         <artifactId>struts2-core</artifactId>  
  4.         <version>2.3.24.1</version>  
  5.     </dependency>  
 
  
 

通过上图的比较,说明配置没问题,jar包都是先从maven中央仓库下载到nexus仓库中,然后再提交到本地仓库。


以上就是nexus的一些工厂类型介绍以及简单配置;接下来的文章里,会再进一步详细讲解nexus的配置问题。

发布了63 篇原创文章 · 获赞 3 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/jiejie11080/article/details/54275567