maven3 自学笔记(一) Maven依赖
来源:互联网 发布:水弹的数据 编辑:程序博客网 时间:2024/06/07 18:26
Maven 的依赖
1、依赖作用域:
通过<scope></scope> 来控制依赖的范围。
例如:
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
只有当test的时候,才会使用此依赖。将 junit的包打入
默认的依赖范围是 compile
常用的依赖如下:
<scope>test</scope> 在测试范围有效,在编译和打包的时候不会依赖
<scope>compile</scope>在编译范围有效,在编译和打包的时候会将这个依赖存储进去
<scope>provided</scope>在编译和测试的时候有效,但是要警惕 生成war包时候,不会导入,理由是,服务器的web服务已经打开,再打包会和web服务器的包冲突
<scope>runtime</scope>在运行的时候依赖,在编译的时候不会去依赖
2、传递依赖冲突
场景一: (-->代表依赖)
A-->B1.0
C-->B1.1
D-->AC
对于以上场景 Maven是通过 pom.xml里 如果 D 先依赖 A ,则是 B1.0,如果D先依赖 C则是B1.1
场景二:
A-->B1.0
C-->B1.1
D-->AC
E--->DC
对于以上场景,maven是通过选择最短路径来判定的。
比如 E--->C---B1.1 只有两级依赖
E-->D-->A-->B1.0 有三级依赖。
所以 在E中是依赖 B1.1的
如果想要手动控制 依赖可以使用:
在依赖的对象中加入如下配置,将该依赖中的某些包剔除出去
<exclusions>
<exclusion>
<groupId>B</groupId>
<artifactId>B</artifactId>
</exclusion>
</exclusions>
3、依赖的聚合
未了避免每个模块都打包,可以使用一个pom.xmle配置
<groupId>随便取名字</groupId>
<artifactId>随便去名字</artifactId>
<version>随意版本号</version>
<packaging>pom</packaging>
<modules>
<module>A模块相对路径</module>
<module>B模块的相对路径</module>
<module>C模块的相对路径</module>
<module>D模块的相对路径</module>
</modules>
执行以上 的pom之后,他会将所有的子模块全部打包
4、使用maven继承
可以定义 类似父类的 pom.xml
子模块 的pom.xml继承 父的pom.xml
代码如下:
<parent>
<groupId>cn.group</groupId>
<artifactId>parent</artifactId>
<version>0.0.1</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
继承可以把依赖全部继承。
可以使用选择依赖。在父pom.xml中定义
<dependencyManagement>
...
</dependencyManagement>
在 子pom中通过
<groupId>cn.group.xx</groupId>
<artifactId>xx</artifactId>
- maven3 自学笔记(一) Maven依赖
- maven3的学习笔记(一)maven初步
- Maven依赖(一)
- maven3.0.4学习笔记(一)
- Maven3学习笔记一
- Maven3学习笔记-安装Maven
- maven 学习笔记一 (坐标和依赖)
- Maven开发笔记(一)—— Maven中的依赖作用范围(scope)
- ajax自学笔记(一)
- android自学笔记(一)
- java自学笔记(一)
- TUXEDO自学笔记(一)
- TUXEDO自学笔记(一)
- python自学笔记(一)
- QuickServer自学笔记(一)
- Linux自学笔记(一)
- Android自学笔记(一)
- Yii自学笔记(一)
- VC下显示位图的几种方法
- Linux下yum命令概要与用法
- strstr fuction
- UVA 11783 Nail【简单线段相交判断 附YY加强版】
- MFC中怎样将位图写入指定的Picture控件中,两种方式:1 加载已有位图 2读取位图文件;另外CreateDIBitmap的用法和StretchDIBits用法举例
- maven3 自学笔记(一) Maven依赖
- A类不能实例化,但B类需要使用A类对象的设计策略
- Javascript
- The connection to adb is down, and a severe error has occured.解决办法
- Ubuntu12.10 64bit版编译android4.0.*版本系统相关问题
- hdu 1036 (字符串)
- 定义包含结构的内表
- php iconv() 编码转换出错 Detected an illegal character
- svn从服务器上下载代码