笔记: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:表示项目中未使用的,但显示声明的依赖,需要注意,对于这一类的依赖,我们不应该简单的直接删除其声明,该命令只会分析编译、测试需要用到的依赖,一些执行运行时需要的依赖无法发现。
笔记:Maven 依赖及配置详解的更多相关文章
- 学习笔记——Maven settings.xml 配置详解
文件存放位置 全局配置: ${M2_HOME}/conf/settings.xml 用户配置: ${user.home}/.m2/settings.xml note:用户配置优先于全局配置.${use ...
- 学习笔记——Maven pom.xml配置详解
POM的全称是“ProjectObjectModel(项目对象模型)”. pom.xml详解 声明规范 <projectxmlns="http://maven.apache.org/P ...
- maven常用插件配置详解
常用插件配置详解Java代码 <!-- 全局属性配置 --> <properties> <project.build.name>tools</proje ...
- 【转】Maven pom.xml 配置详解
原文链接:https://yq.aliyun.com/articles/38271 pom.xml文件配置详解 --声明规范 <project xmlns="http://maven. ...
- Maven settings.xml配置详解
首先:Maven中央仓库的搜索全部公共jar包的地址是,http://search.maven.org/ ===Maven基础-默认中央仓库============================== ...
- 【Maven学习】maven中依赖的配置详解
根元素project下的dependencies可以包含一个或者多个dependency元素,以声明一个或多个项目依赖.每个依赖可以包含的元素有: groupId,artifactId和version ...
- (转)Maven pom.xml 配置详解
背景:maven一直感觉既熟悉又陌生,归根结底还是自己不太熟. 1 什么是pom? pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述了项目:包括配置文件:开发者 ...
- Maven(四-2) Maven pom.xml 配置详解
转载于:http://niuzhenxin.iteye.com/blog/2042102 什么是pom? pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现.主要描述 ...
- Nginx-安装依赖及配置详解
依赖 在安装Nginx之前, 需确保系统已经安装了gcc. openssl-devel. pcre-devel和zlib-devel软件库 配置 Nginx的配置文件nginx.conf位于其安装目录 ...
随机推荐
- RequireJS中的require返回模块
requirejs中定义AMD模块规则如下: define(function(){ var ProductManager={ Create:function(){ console.log(" ...
- JavaScript的预编译和执行
JavaScript引擎,不是逐条解释执行javascript代码,而是按照代码块一段段解释执行.所谓代码块就是使用<script>标签分隔的代码段. 整个代码块共有两个阶段,预编译阶段和 ...
- Count:2org.apache.batik.transcoder.TranscoderException: null
1.错误描述 Count:2org.apache.batik.transcoder.TranscoderException: null Enclosed Exception: The current ...
- hibernate学习(一)配置,导包
框架的作用 学过javaWeb基础的已经对web层 jsp servlet ,service 层 ,dao层的jdbc .DBUtils 有了很深的了解 并编写代码实现某种功能 为了提高开发 ...
- javaWeb之邮箱发送(邮箱客户端配置)
这里使用的是本机的邮箱服务器 , 代码执行条件: 1.·邮箱服务器 , 下载地址 密码 s4xn 邮箱服务器配置: 1):安装 2):打开服务器 红色部分是默认账号,不用处理 3)系统设置 ...
- C#多线程编程(5)--线程安全1
当你需要2个线程读写同一个数据时,就需要数据同步.线程同步的办法有:(1)原子操作:(2)锁.原子操作能够保证该操作在CPU内核中不会被"拆分",锁能够保证只有一个线程访问该数据, ...
- 第二篇:操纵MySQL数据库(2) - 基于ORM思想的SQLAlchemy库
前言 本文讲解在Python语言中使用SQLAlchemy库操纵MySQL数据库的方法. 由于具体内容涉及较多,本文仅以插入及展示数据为例,更多内容请查阅有关文档. ORM ORM也即对象 - 关系映 ...
- 洛谷2709 小B的询问(莫队)
题面 题目描述 小B有一个序列,包含N个1~K之间的整数.他一共有M个询问,每个询问给定一个区间[L..R],求Sigma(c(i)^2)的值,其中i的值从1到K,其中c(i)表示数字i在[L..R] ...
- 【洛谷1640】[SCOI2010]连续攻击游戏
题目描述 lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示.当他使用某种装备时,他只能使用该装备的某一个属性.并且每种装备 ...
- poj-3169Layout
题意 当排队等候喂食时,奶牛喜欢和它们的朋友站得靠近些.FJ有N(2<=N<=1000)头奶牛,编号从1到N,沿一条直线站着等候喂食.奶牛排在队伍中的顺序和它们的编号是相同的.因为奶牛相当 ...