maven-依赖仓库

<dependency>  
    <groupId>net.sf.json-lib</groupId>   
    <artifactId>json-lib</artifactId>   
    <version>2.2.2</version>  
    <classifier>jdk13</classifier>    
</dependency>  

其中classifier 可以是jdk13,jdk15,jdk15-javadoc,jdk15-sources,表明你可以依赖不同jdk版本的jar包,甚至可依赖javadoc或sources包。

1 编译主代码,2 编译测试代码和运行测试代码,3 运行程序有三套classpath
scope:
compile(默认),依赖存在于三种classpath内
test,只在2
provided,在1,2, 3由容器提供,如serlvet-api
runtime, 在2,3,如jdbc驱动,编译时不需要

在这里插入图片描述

上面行为第二依赖,左边列为第一依赖,先看第二,第二为compile,同第一,第二为test,不传递,第二为provided,第一为provided才provided,第二为runtime,同第一(除了第一为compile,此时为runtime)

路径最短优先,路径长度一样看声明顺序
重要:有传递依赖A版本为v1,自己pom内dependencyManagement(可以parent继承或scope为import的导入)里A版本为v2,最后解析出来A的版本为v2

<dependency>  
 <optional>true</optional>
</dependency>  

可选依赖表明依赖不会被传递,只对自己生效。

<dependency>
  <exclusions>
        <exclusion>
         <groupId>com.cc.maven</groupId>
          <artifactId>project-c</artifactId>
        </exclusion>
</exclusions>
</dependency>

排除依赖

pom中的repositories:定义下载的各个仓库。

 <repositories>
    <repository>
      <releases>
        <enabled>true</enabled>
        <checksumPolicy>warn</checksumPolicy>
      </releases>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>always</updatePolicy>
        <checksumPolicy>fail</checksumPolicy>
      </snapshots>
      <id>public</id>
      <name>all repoes</name>
      <url>http://maven.release.ctripcorp.com/nexus/content/groups/public</url>
    </repository>

上述分析:可下载发布版和快照版构件,checksumPolicy决定(fail,warn,ignore)下载构件后验证校验和失败时的行为
updatePolicy(默认daily,never,always-每次构建都检查,interval : X,隔X分钟检查一次):决定从远程仓库检查更新的频率,某个版本(可能snapshot,也可能非snapshot)都有变动的可能,不能说本地仓库有了,就永远不去看远端这个版本是否变动了。

pom中的distributionManagement:定义上传(deploy)的仓库和快照仓库

  <distributionManagement>
    <repository>
      <id>releases</id>
      <url>http://maven.dev.sh.ctripcorp.com:8081/nexus/content/repositories/tourrelease</url>
    </repository>
    <snapshotRepository>
      <id>snapshots</id>
      <url>http://maven.dev.sh.ctripcorp.com:8081/nexus/content/repositories/toursnapshot</url>
    </snapshotRepository>
  </distributionManagement>

settings中的servers/server:定义访问 各上传或下载仓库的设置(如用户名,密码)

<servers>
		<server>
			<id>releases</id>
			<username>admin</username>
			<password>admin123</password>
		</server>

settings中的mirrors/mirror:为下载的仓库定义镜像

<mirrors>
		<mirror>
		  <id>nexus</id>
		  <mirrorOf>*</mirrorOf>
		  <name>public</name>
		  <url>http://maven.release.ctripcorp.com/nexus/content/groups/public</url>
		</mirror>
	</mirrors>

release或普通版本:构建时本地仓库无此jar包才拉取,一般不配置(默认daily),重新deploy就会覆盖原来版本
snapshot:根据timestamp有多个版本,(一般配置always)每次构建都需要拉取远端的metadata文件看是否有更新版本可以拉取

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值