maven坐标和依赖

1. 坐标:

     groupId : 当前maven项目隶属的实际项目, 与java包名的方法类似,与域名反向对应。
     artifactId: 定义实际项目中的一个Maven项目,推荐的做法是使用实际项目名称作为artifactId的前缀。
     version: 定义Maven项目当前所处的版本
     packaging: 定义Maven的打包方式
     classifier: 帮助定义构建输出的一些附属构建
     groupId、artifactId、version是必须定义的,packaging是可选的(默认为jar)、而classifier是不能直接定义的。

2. 依赖的配置:

     dependency元素下面包含的元素有:
     groupId、artifactId、version : 依赖的基本坐标,
     type: 依赖类型,默认值为jar
     scope: 依赖的范围
     optional: 标记依赖是否可选
     exclusions: 排除传递性依赖
     

3. 依赖范围:
     compile: 编译依赖范围
     test:测试依赖范围
     provided:以提供依赖范围, 对于编译和测试classpath有效,但运行时无效
     runtime:运行时依赖范围, 对于测试和运行classpath有效,但在编译主代码时无效
     system:系统依赖范围, 和provided一致,但必须通过systemPath元素显示指定依赖文件的路径
     import: 导入依赖范围,

4. 依赖传递性
     依赖可以传递

在中央仓库中可以查看具体包的依赖。
http://search.maven.org/remotecontent?filepath=org/springframework/spring-core/2.5.6/spring-core-2.5.6.pom

5. 依赖调解
     Maven依赖调节第一原则:路径最近者优先
     第二原则: 第一声明优先。

6. 最佳实践

(1) 排除依赖: exclusion
     排除不稳定版本
     排除无版权版本
     声明exclusion的时候只需要groupId和artifactId,而不需要version元素。

(2) 归类依赖: 
     使用properties元素定义Maven属性。
     可以使用美元符号和大括号环绕的方式引用Maven属性。

(3) 优化依赖
     依赖列表:  mvn dependency:list    查看当前项目的已解析依赖
     依赖树: mvn dependency:tree   
     分析依赖: mvn dependency:analyze
          Used undeclared dependencies  项目中使用到的,但是没有显示声明的依赖
          Unused declared dependencies  项目中未使用的,但显示声明的依赖


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值