maven之Nexus的配置【pom.xml配置<repositories>】(五)
来源:互联网 发布:淘宝买家退货率高后果 编辑:程序博客网 时间:2024/06/05 18:41
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:
<groupId>com.carlo</groupId> <artifactId>xxx_service</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging>当对A项目执行mvn:deploy命令后,会把A项目打包成jar包,并上传到hoseted类型中的Snapshots工厂(仓库)中。
Releases:比如有个B项目,版本是0.0.1-RELEASES:
<groupId>com.carlo</groupId> <artifactId>xxx_core</artifactId> <version>0.0.1-RELEASES</version> <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中:
<dependency><groupId>org.apache.struts</groupId><artifactId>struts2-core</artifactId><version>2.3.24.1</version></dependency>
通过上图的比较,说明配置没问题,jar包都是先从maven中央仓库下载到nexus仓库中,然后再提交到本地仓库。
以上就是nexus的一些工厂类型介绍以及简单配置;接下来的文章里,会再进一步详细讲解nexus的配置问题。
- maven之Nexus的配置【pom.xml配置<repositories>】(五)
- maven学习九之pom.xml或settings.xml对nexus的配置
- maven 仓库配置 pom中repositories属性
- maven 仓库配置 pom中repositories属性
- maven 仓库配置 pom中repositories属性
- maven 仓库配置 pom中repositories属性
- maven 仓库配置 pom中repositories属性
- maven之pom.xml配置
- Maven的pom.xml配置
- maven pom.xml的配置
- Maven的pom.xml配置
- nexus-3.6.0-02-unix.tar.gz安装(Centos下),maven setting.xml配置案例,项目root的pom.xml配置,parent-pom的pom.xml配置案例
- Maven pom.xml配置
- maven pom.xml 配置
- maven-pom.xml配置
- maven pom.xml配置
- 配置Maven的服务Repositories
- Maven的Setting.xml配置默认JDK,本地仓库,repositories
- 我想要个好看的404,哈哈
- Android适配全攻略
- hdu5381The sum of gcd 线段树+set
- net.sf.hibernate.MappingException
- ZOJ 3635 Cinema in Akiba【线段树】
- maven之Nexus的配置【pom.xml配置<repositories>】(五)
- C#与Java基础语法初比较
- 字符串压缩
- 深入理解iOS API系列(四)理解CNContactPickerDelegate
- net.sf.hibernate.PropertyNotFoundExceptio
- 【二叉树】关于二叉树的后续遍历遍历以及栈
- C语言/函数指针
- 【LEETCODE】96-Unique Binary Search Trees
- sql cookbook 笔录(一)