zoukankan      html  css  js  c++  java
  • 【Maven学习】maven中依赖的配置详解

    根元素project下的dependencies可以包含一个或者多个dependency元素,以声明一个或多个项目依赖。每个依赖可以包含的元素有:

    • groupId,artifactId和version:依赖的基本坐标,对于一个依赖来说,基本坐标是最重要的,Maven根据坐标才能找到需要的依赖。
    • type:依赖的类型,对应于项目坐标定义的packaging。大部分情况下,该元素不必声明,默认值为jar。
    • scope:依赖的范围。
      • compile:编译依赖范围(默认值)。使用此依赖范围的Maven依赖,对于编译、测试、运行三种classpath都有效。
      • test:测试依赖范围。典型的例子是jUnit,只有在编译测试代码及运行测试的时候才需要。
      • provided:已提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试classpath有效,运行时无效。
      • runtime:运行时依赖范围。对于测试和运行classpath有效,但在编译主代码时无效。典型的例子是JDBC驱动实现,项目主代码的编译只需要JDK提供的JDBC接口,只有在执行测试或者运行项目的时候才需要实现上述接口的具体JDBC驱动。
      • system:系统依赖范围。该依赖与三种classpath的关系,和provided依赖范围完全一致。但是,使用system范围的依赖时,必须通过systemPath元素显式的指定依赖文件的路径。由于此类依赖不是通过Maven仓库解析的,而且往往与本机系统绑定,可能造成构建的不可移植,因此应该谨慎使用。
      • import:导入依赖范围。
    • optional:标记依赖是否可选。如果设为true,那么在A依赖B,B依赖于X和Y,且X和Y都可选时,此时,默认情况下,A是不依赖于X和Y的,如果A需要依赖X,那么需要在A中显式的声明X。
    • exclusions:用来排除传递性依赖。

    使用常量来声明同一版本

    <properties>
        <springframework.version>4.3.8.RELEASE</springframework.version>
    </properties>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${springframework.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context-support</artifactId>
            <version>${springframework.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>${springframework.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${springframework.version}</version>
            <scope>provided</scope>
        </dependency>
    </dependencies>
    

    优化依赖

    可以运行如下命令查看当前已解析依赖:

    mvn dependency:list
    

    可以运行如下命令查看当前项目的依赖树:

    mvn dependency:tree
    

    在此基础上,还有工具可以帮助分析当前项目的依赖:

    mvn dependency:analyze
    
  • 相关阅读:
    错误滚动条eclipse快速定位到错误处
    路径原因linux下tomcat无法启动
    提示命令命令行将U盘文件系统转换成ntfs
    客户传真第四部分 个人理财风险防范8.当心银行汇款引发的诈骗
    请求错误[Python]网络爬虫(三):异常的处理和HTTP状态码的分类
    范围元【2013 GDCPC】有为杯 广东ACM省赛小总结
    编程程序国外程序员的BASIC情结——我的编程生涯始于BASIC
    执行取消利用timer实现的倒计时
    文件分析IDA反汇编/反编译静态分析iOS模拟器程序(二)加载文件与保存数据库
    安全业务第四部分 个人理财风险防范9.取款也要加小心
  • 原文地址:https://www.cnblogs.com/f-zhao/p/6858933.html
Copyright © 2011-2022 走看看