zoukankan      html  css  js  c++  java
  • 笔记:Maven 依赖及配置详解

    dependencies 配置节,主要用于配置项目依赖的其他包,其子节点 dependency 用来配置具体依赖包,有groupId、artifactId、version、scope等子节点来说明,配置节结构如下:

    <dependencies>

          <dependency>

                <groupId>这个应该是公司名或组织名或项目归属组</groupId>

                <artifactId>构建出来的文件名,一般来说或,这个也是project名</artifactId>

                <version>版本号</version>

                <scope>依赖的范围</scope>

                <type>依赖的类型,默认值:jar</type>

                <optional>依赖是否可选(值为 true false)</optional>

                  <!-- 用来排除传递性依赖 -->

                <exclusions>

    <exclusion>

    <groupId>项目归属组</groupId>

    <artifactId>项目在组中唯一ID</artifactId>

    </exclusion>

                </exclusions>

    </dependency>

    • 子节点 scope:用于配置和依赖包的范围,范围值有 compile、test、runtime、provided、system
      • compile:编译依赖范围,如果没有指定,就会默认使用该依赖范围,使用此依赖范围,对于编译、测试、运行三种有效
      • test:测试依赖范围,使用此依赖范围,对于测试有效
      • provided:已提供依赖范围,使用此依赖的范围,对于编译和测试有效
      • runtime:运行时依赖,使用此依赖的范围,对于测试和运行有效
      • system:系统依赖范围,使用此依赖的范围,对于编译和测试有效,但必须通过 systemPath 元素显示的指定依赖文件的路径(可以引用环境变量,必须 ${java.home} 表示 JAVA_HOME 环境变量)
      • import:导入依赖范围,不会对 编译、测试和运行有实际的影响

    Maven 会自动解析所有项目的直接依赖和传递性依赖,并根据果汁正确判断每个依赖的范围,对于一些依赖冲突,也能进行调节,以确保任何一个构建只有唯一的版本在依赖中存在,这些工作之后,最后得到的依赖被称为已解析依赖(Resolved Dependency),可以运行如下的命令查看当前项目的已解析依赖:

    mvn dependency:list

    命令结果:

    可以通过命令查看当前项目的依赖树:

    mvn dependency:tree

    命令结果:

    需要需要分析依赖的情况,可以使用命令:

    mvn dependency:analyze

    命令结果:

    结果分为二部分:

    • Used undeclared dependencies:表示项目中使用到的,但时没有显示声明的依赖
    • Unused declared dependencies:表示项目中未使用的,但显示声明的依赖,需要注意,对于这一类的依赖,我们不应该简单的直接删除其声明,该命令只会分析编译、测试需要用到的依赖,一些执行运行时需要的依赖无法发现。
  • 相关阅读:
    POJ3984-迷宫问题【BFS】
    BFS与DFS模板
    nyoj27-水池数目【DFS】
    C++ STL-stack使用详解
    C++ STL
    HDU1058
    HDU1114
    HDU1867
    Codeforces Round #461 (Div. 2) D. Robot Vacuum Cleaner
    Codeforces Round #461 (Div. 2) C. Cave Painting
  • 原文地址:https://www.cnblogs.com/li3807/p/6416204.html
Copyright © 2011-2022 走看看