本文共 2209 字,大约阅读时间需要 7 分钟。
4.0.0 com.yuxl.test user 0.0.1-SNAPSHOT jar user http://maven.apache.org UTF-8 ....
groupId,artifactId,version,packaing,classifier
groupId:当前Maven项目隶属的项目,必须的; artifactId:项目中的模块,必须的; version:版本,必须的; packaging:maven项目的打包方式,默认为jar; classifier:不能直接定义,由插件帮助生成的(不是太理解)。............ ??? ??? ??? ??? ??? ...
exclusions:排除传递依赖
(三种classpath:编译classpath、测试classpath、运行classpath)
import:导入依赖范围(dependencyManagement)
scope | 编译classpath | 测试classpath | 运行classpath |
---|---|---|---|
compile | y | y | y |
test | n | y | n |
provided | y | y | n |
runtime | n | y | y |
system | y | y | n |
如果:A ⇒B,B⇒C(A依赖于B,B依赖于C)
那么:A⇒C(A依赖于C)和版本的大小无关
如:依赖关系 | 结果 | 备注 |
---|---|---|
A ⇒D⇒C1,B⇒C2 | C2 | B的路径比A短 |
A ⇒C1,B⇒C2 | C1 | A声明在B前面 |
(一般不用optional,因为一般对象设计中,有单一责任的原则,即一个类只做一项事,不要糅杂太多的功能)
如果:A ⇒B,B⇒X或者Y(A依赖于B,B依赖于X或者Y(可选的))使用了```true ```
而A依赖B,可是B中有可选的X,Y,所以需要在A中显示声明下,到底用X,还是Y(即把B中的X或者Y其中一个copy过来,将<optional<true</optional>删除)。
在<exclusions<true</exclusions>中加上要排除的依赖
...... ??? ???
说白了,就是定义了一些变量,方便重复使用。(以后修改一处即可)
...... 3.0 org.springframework spring-core ${springframework.version}
查看当前项目中已经解析的依赖:
mvn dependency:list mvn dependency:tree推荐一本书籍:《maven实战》作者:许晓斌 《maven 3 in action》 作为入门和基础学习很不错的。
转载地址:http://okhws.baihongyu.com/