【maven】maven的pom.xml配置

学习资料:
http://www.iteye.com/topic/240424
https://blog.csdn.net/kimylrong/article/details/50353161

一、dependency的配置

1. 各配置项的含义
<dependency>  
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate</artifactId>
    <version>3.2.6.ga</version>
    <scope>provided</scope>  
</dependency> 

a. groupId、artifactId、version:决定了本地jar包的目录,默认jar包下载后存放在%repository%\org\hibernate\hibernate\3.2.6.ga\hibernate-3.2.6.ga.jar。
- 其中,repository目录默认为: /Users/你的用户名/.m2/;如果修改过maven的setting.xml配置,则为你指定的目录
- 存放目录是groupid + artifactid + version,且以点号作分隔建立文件夹的
|–org
|–hibernate
|–hibernate
|–3.2.6.ga
|–hibernate-3.2.6.ga.jar

b. scope:限制dependency的作用范围的, 影响maven项目在各个生命周期时导入的package的状态。共6种值 ,默认为compile。且dependencies会传递到依赖的项目中
- compile:默认值compile。compile表示被依赖项目需要参与当前项目的编译,后续的测试,运行周期也参与其中,是一个比较强的依赖。打包的时候通常需要包含进去。
- test:依赖项目仅仅参与测试相关的工作,包括测试代码的编译,执行。比较典型的如junit。不作用在运行时。
- runntime:被依赖项目无需参与项目的编译,但后期的测试和运行周期需要其参与。与compile相比,跳过了编译。
- provided:打包的时候可以不用包进去,别的设施(Web Container)会提供。事实上该依赖理论上可以参与编译,测试,运行等周期。相当于compile,但是在打包阶段做了exclude的动作。没有传递性,
- system:从参与度来说,也provided相同,不过被依赖项不会从maven仓库抓,而是从本地文件系统拿,一定需要配合systemPath属性使用

2. scope的传递

A–>B–>C。当前项目为A,A依赖于B,B依赖于C。知道B在A项目中的scope,那么C在A中的scope是:
- 当C是test或者provided时,C直接被丢弃,A不依赖C;
- 否则A依赖C,C的scope继承于B的scope。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值