坐标和依赖

简介:
坐标能够唯一定义一个Maven构件,包含
     1.groupId
     2.artifactId
     3.version
     4.packaging
     5.classifier
    
依赖范围
     complie
     test
     provided
     runtime
     system
     import

依赖范围 对编译classpath有效 对測试classpath有效 对执行时classpath有效 样例
complie Y Y Y spring-core
test - Y - Junit
provided Y Y - servlet-api
runtime - Y Y jdbc driver
system - Y Y local lib


下表第一列表示第一直接依赖范围,第一行表示第二直接依赖范围,交叉单元格表示传递依赖范围
  complie test provided runtime
complie complie - - runtime
test test - - test
provided provided - provided provided
runtime runtime - - runtime


依赖调解
     原则一、最短路径优先
     原则二、声明顺序优先

可选依赖
     可选依赖不会传递,如需使用,须要单独声明。


     可选依赖不推荐使用,属于不好的实践。建议将每一个依赖单独做成maven构件,由使用者决定依赖
    
排除依赖

     <dependency>   
          <groupId>org.springframework</groupId> 
          <artifactId>spring-core</artifactId> 
          <version>2.5.6</version> 
          <exclusions> 
                  <exclusion>     
                         <groupId>commons-logging</groupId>         
                         <artifactId>commons-logging</artifactId> 
                  </exclusion> 
          </exclusions> 
     </dependency>

归类依赖
     <dependencies> 
       <dependency> 
          <groupId>org.spring.framework</groupId> 
          <artifactId>spring-core</artifactId> 
          <version>${spring.version}</version> 
       </dependency> 
       <dependency> 
          <groupId>org.spring.framework</groupId> 
          <artifactId>spring-beans</artifactId> 
          <version>${spring.version}</version> 
       </dependency> 
       <dependency> 
          <groupId>org.spring.framework</groupId> 
          <artifactId>spring-web</artifactId> 
          <version>${spring.version}</version> 
       </dependency> 
       <dependency> 
          <groupId>org.spring.framework</groupId> 
          <artifactId>spring-mock</artifactId> 
          <version>${spring.version}</version> 
       </dependency> 
     </dependencies> 
      
     <properties> 
       <spring.version>2.5</spring.version> 
     </properties> 
    
优化依赖
mvn dependency:list
mvn dependency:tree
mvn dependency:analyze





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5207973.html,如需转载请自行联系原作者
相关文章
|
存储 Java Maven
Javaweb之Maven仓库的详细解析
2.3 Maven仓库 仓库:用于存储资源,管理各种jar包 仓库的本质就是一个目录(文件夹),这个目录被用来存储开发中所有依赖(就是jar包)和插件
797 0
IDEA2023激活码,附安装步骤
失效请看:docs.qq.com/doc/DVHhaSHZCaFJKd0Rq
1587 1
|
机器学习/深度学习 运维 分布式计算
大数据技术专业就业前景
大数据技术专业就业前景广阔,广泛应用于互联网、金融、医疗等众多行业,助力企业数字化转型。岗位涵盖大数据开发、分析、运维及管理,如大数据工程师、分析师和系统运维工程师等。这些岗位因专业性和稀缺性而享有优厚薪资,尤其在一线城市可达20万至50万年薪。随着技术进步和经验积累,从业者可晋升为高级职位或投身数据咨询、创业等领域,发展空间巨大。
1781 6
|
算法 安全 Java
【数据安全】常见加密算法总结
【数据安全】常见加密算法总结
3707 1
|
传感器 存储 缓存
|
机器学习/深度学习 算法 数据可视化
突破传统生存分析:利用随机森林进行个体化风险预测
突破传统生存分析:利用随机森林进行个体化风险预测
1808 0
突破传统生存分析:利用随机森林进行个体化风险预测
|
前端开发 JavaScript UED
节流防抖:提升前端性能的秘密武器(下)
节流防抖:提升前端性能的秘密武器(下)
节流防抖:提升前端性能的秘密武器(下)
|
数据挖掘 Python
Python|详解Python中的axis参数
详解Python(Pandas/Numpy)中的axis参数
Python|详解Python中的axis参数
|
安全 Android开发 C语言
一文搞懂AVB的使用
一文搞懂AVB的使用
1872 0
|
缓存 前端开发 JavaScript
前端性能优化-减少HTTP请求数
前端性能优化-减少HTTP请求数
539 0