Maven仓库核心配置
来源:互联网 发布:捷威监控软件 编辑:程序博客网 时间:2024/05/05 07:12
一、首先在IDE中配置maven的localrepository与settings.xml的路径:
二、然后看settings.xml的核心配置:
2.1 地仓库必须配置
<!-- 设置本地仓库路径 --><localRepository>/Users/user/Work/m3/repository</localRepository>
2.2 远程仓库之中央仓库可选择性配置
因为maven本身已经配置了中央仓库(${M2_HOME}/lib/maven-2.0.10-uber.jar ,打开该文件,能找到超级POM:/org/apache/maven/project/pom-4.0.0.xml ,它是所有MavenPOM的父POM,所有Maven项目继承该配置),但是由于服务器在国外,比较慢,所以我们可以配置一个国内的镜像仓库:
2.3 远程仓库之私服(nexus)必须配置,可以配置在settings.xml文件,也可以配置在项目的pom文件中(一般配在pom中,比较灵活)。至于如何在settings.xml中与pom中配置远程仓库,下面会给出示例。
注:配置远程仓库都是为了从仓库拉取jar用的,与上传(deploy)无关;而且还要注意如下相关配置,表示是否可以拉去snapshots/releases版本的jar包。
一般规则为这样:如果是外部远程仓库(例如中央仓库)一般releases配true,snapshots配false,防止由于snapshots版本组件由于不稳定引发问题。如果是本地开发时用的私服,我们都配成true即可,方便开发。需要注意,snapshots默认是为false的,如果开发的时候想下载snapshots类型的组件,必须显式配置为true
<releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots>
2.4 上面配置的中央仓库还有nexus都是拉取组件用的,如果想上传(deploy)组件到远程仓库,需要配置两步:
(1)在项目的pom中配置distributionManagement节点,如下:
<distributionManagement><repository><id>acfunRepo</id><url>http://nexus.acfun.tv/nexus/content/repositories/AcFun-Release/</url></repository><snapshotRepository><id>acfunRepo</id><url>http://nexus.acfun.tv/nexus/content/repositories/AcFun-Snapshot/</url></snapshotRepository></distributionManagement>
(2)在settings.xml文件中配置所上传到的仓库的用户名密码(server节点)
<servers><server><id>acfunRepo</id><username>acfun</username><password>acfun123</password></server></servers>
这里需要特别注意:server.id 必须与pom中配置distributionManagement下的repository.id相同,如上面都为acfunRepo
三、下面介绍如何在settings.xml中与pom中配置远程仓库【接上面的2.3】
这里的远程仓库一般指的是中央仓库或者私服,是拉取组件用的仓库。二者都既能配置在settings.xml文件,也可以配置在项目的pom文件中。但是,如果配置中央仓库,则建议配置在settings文件中,方便大家共用;如果配置私服(nexus),则建议配置在项目的pom中,方便保持项目的灵活性。
下面则以私服(nexus)为例,展示分别在settings.xml中与pom中的配置方法:
3.1 在pom中配置(比较简单)
<project>......<repositories><repository><id>acfunnexus</id><url>http://nexus.acfun.tv/nexus/content/groups/public/</url><layout>default</layout><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>......</project>
3.2 在settings.xml中配置(需要两步)
它不支持pom中的中的<repositories>及<pluginRepositories>元素,所以我们需要利用profile与activeProfile节点来完成,如下:
<settings> ... <profiles> <profile> <id>dev</id> <!-- repositories and pluginRepositories here--> </profile> </profiles> <activeProfiles> <activeProfile>dev</activeProfile> </activeProfiles> ... </settings>
四、总结
pom中主要仓库配置如下:
<project>......<!-- deploy组件的仓库配置,注意id需要与settings.xml中的server节点的id匹配--> <distributionManagement><repository><id>acfunRepo</id><url>http://nexus.acfun.tv/nexus/content/repositories/AcFun-Release/</url></repository><snapshotRepository><id>acfunRepo</id><url>http://nexus.acfun.tv/nexus/content/repositories/AcFun-Snapshot/</url></snapshotRepository></distributionManagement><!-- 拉去组件的私服(nexus)仓库配置--> <repositories><repository><id>acfunnexus</id><url>http://nexus.acfun.tv/nexus/content/groups/public/</url><layout>default</layout><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository></repositories>......</project>
settings.xml中的主要配置:
<settings>......<!-- 本地仓库配置--> <localRepository>/Users/user/Work/m3/repository</localRepository><!-- deploy组件的仓库server的身份验证配置,注意id需要与pom中的distributionManagement节点的repository.id匹配--> <servers><server><id>acfunRepo</id><username>acfun</username><password>acfun123</password></server></servers><!-- 配置国内的中央镜像仓库(可以不配置)--> <profiles> <profile> <id>chinaCentralRepo</id> <repositories><repository><id>maven-net-cn</id><name>MavenChinaMirror</name><url>http://repo2.maven.org/maven2/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></repository></repositories><pluginRepositories><pluginRepository><id>maven-net-cn</id><name>MavenChinaMirror</name><url>http://repo2.maven.org/maven2/</url><releases><enabled>true</enabled></releases><snapshots><enabled>false</enabled></snapshots></pluginRepository></pluginRepositories></profile></profiles> <activeProfiles> <activeProfile>chinaCentralRepo</activeProfile> </activeProfiles>......</settings>
- Maven仓库核心配置
- Maven仓库核心配置
- Maven核心_仓库
- maven的核心概念&Maven仓库管理
- maven仓库配置
- maven 仓库配置1
- maven仓库配置-经典
- maven 配置仓库文件
- Maven本地仓库配置
- nexus 配置maven仓库
- Maven配置公共仓库
- maven配置中央仓库
- maven配置国内仓库
- Maven本地仓库配置
- maven仓库配置
- maven仓库配置
- maven远程仓库配置
- MAVEN仓库配置
- DevExpress 进度条progressBarControl的使用
- HTTP权威指南笔记
- 手把手教你AndroidStudio多渠道打包
- php 设计模式
- ionic中文本固定长度的设置以及显示和隐藏
- Maven仓库核心配置
- Windows下的getopt(支持Unicode)
- Remove Duplicates from Sorted List ---LeetCode
- OpenCL Installable Client Driver (ICD) Loader编译
- C++ 异常处理例子
- Kali Linux 网络扫描秘籍 第二章 探索扫描(一)
- 手机端如何真正的解决页面缓存问题
- [Wondgirl] 微信小程序(四)事件
- Hibernate实体关系映射