Maven实战学习笔记(仓库)

一、仓库分类

仓库分为本地仓库和远程仓库。当Maven查找构件时,会先从本地仓库查找,不存在就去远程仓库查找,发现需要的构件将其下载到本地仓库。如果本地仓库和远程仓库都木有,则报错。

1、本地仓库默认在C盘计算机名的文件夹.m2中(.开头的文件夹无法直接取名创建,可在命令行命令创建)。用户可自定义本地仓库目录,推荐做法为先复制一份maven安装目录conf文件夹中的setting.xml到.m2目录下,然后设置localRepository为目标目录,如:

<localRepository>F:/maven/repository</localRepository>

2、maven会有默认的远程仓库(中央仓库),配置在所有pom都继承的超级pom中,此pom位于 $M2_HOME/lib/maven-model-builder-3.0.jar org/apache/maven/model/pom-4.0.0.xml中,打开pom可以看到:

<repositories>
    <repository>
      <id>central</id>
      <name>Central Repository</name>
      <url>http://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>
id进行唯一标识,snapshots标签的值false表示不下载快照版本的构件。

3、私服,其作为特殊的远程仓库,架设在局域网内的仓库服务(Nexus)。


二、远程仓库的配置

1、远程仓库pom中配置如下:

<repositories>
	<repostory>
		<id>CN</id> 
		<name>OSChinaCentral</name>
		<url>http://maven.oschina.net/content/groups/public/</url>
		<snapshots>
			<enabled>false</enabled>
		</snapshots>
		<releases>
			<enabled>true</enabled>
			<updatePolicy>never</updatePolicy>
			<checksumpolicy>ignore</checksumpolicy>
		</releases>
	</repostory>
</repositories>
snapshot和releases分别对应快照版本和已发布版本,enabled标识值标明是否下载该版本。 其中updatePolicy、checksumpolicy等都是可选值: updatePolicy表示配置从远程仓库检查更新的频率,默认值为daily,表示每天检查一次,可用值包括:never--从不检查更新,always--每次构建都检查更新,interval:X--每隔x分钟检查一次更新(x为任意整数);checksumpolicy表示用来配置maven检查校验和文件的策略,当构件被部署到仓库中时,会同时部署对应的校验和文件,在下载构件时,maven会验证校验和文件,如果校验和验证失败,如果此时checksumpolicy值为默认的warn时,maven则会在执行构建时输出警告信息,其可用值包括:fail--maven遇到校验和错误就让构建失败,ignore--使maven完全忽略校验和错误。

2、部署至远程仓库

构件部署至仓库中,可用来供其他团队成员使用。Maven除了能对项目进行编译、测试、打包之外,还能将项目生成的构件部署(deploy)到仓库中,在pom.xml中,配置distributionManagement元素。如:

<distributionManagement>  
	<repository>  
		<id>pro-releases</id>
		<name>Release Repository</name>                                  
		<url>http://192.168.1.100/content/repositories/proj-releases</url>
	</repository>
	<snapshotRepository>
		<id>pro-snapshot</id>
		<name>Snapshot Repository</name>                                  
		<url>http://192.168.1.100/content/repositories/proj-snapshot</url>
	</snapshotRepository>
</distributionManagement>

三、镜像

仓库镜像在setting.xml中配置,如果仓库A可以提供仓库B所有的内容,那么仓库A就是仓库B的镜像。

<mirrors>
<mirror>
  <id>CN</id>
  <name>OSChina Central</name>
  <url>http://maven.oschina.net/content/groups/public/</url>
  <mirrorOf>central</mirrorOf>
</mirror>

如上配置了一个中央仓库的镜像,mirrorOf中值为central,此值为超级pom中默认中央仓库的id,此时任何对于中央仓库的请求都会转到id为CN的仓库中。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值