maven的依赖
?
一、maven的pom.xml配置依赖
1、结构
<!--依赖集合-->
?<dependencies>?
<!--依赖-->
??? <dependency>
<!--组id-->
????? <groupId>junit</groupId>
<!--模块id-->
????? <artifactId>junit</artifactId>
<!--版本号-->
????? <version>4.10</version>
<!--依赖范围-->
????? <scope>test</scope>
??? </dependency>
? </dependencies>
2、依赖是通过坐标来搜索的(GAV的方式)
G——?groupId
A——artifactId
V——version
?
3、依赖的查询
jar包查询顺序
本地仓库——>私服仓库(企业)——>中央仓库
本机在settings.xml文件配置:
????? <localRepository>E:/apache-maven-3.1.0/Repository</localRepository>
代理方式访问私服
???? <proxy>
????? <id>optional</id>
????? <active>true</active>
????? <protocol>http</protocol>
????? <username>proxyuser</username>
????? <password>proxypass</password>
????? <host>proxy.host.net</host>
????? <port>80</port>
????? <nonProxyHosts>local.net|some.host.com</nonProxyHosts>
??? </proxy>
中央仓库查询访问
???? 1)http://www.mvnrepository.com/
???? 2)http://www.sonatype.org/nexus/
4、scope代表范围
1)test 测试范围依赖,编译和打包时候无效
2)compile编译时有效,是scope默认值
3)provided 在编译和测试的时候依赖,打成.war的时候不依赖
4)runtime运行时依赖,编译时候不依赖
?
?二、依赖的冲突
1、依赖存在传递性,当依赖冲突时,会先加载配置考前的依赖
a——>b1.0 c——>b1.2 ,e——>a+c,则a依赖b1.0;
?
2、路径最短原则
a——>b——>c1.0,e——>c1.1 ,f——>a+e 则f依赖c1.1
?
?
3、2例中如果f要依赖c1.0 则在依赖e时用,这样可以精确依赖
<exclusions>
??? <groupId></groupId>
??? <artifactId></artfactId>
</exclusions>
?
4、直接添加依赖,不通过传递依赖加入
?
?三、依赖的聚合问题
?
?
?三、依赖的继承
?
设定子类不全部继承用dependencyManagement
?
?