`
lzw0286
  • 浏览: 33330 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

maven依赖

阅读更多

1.所有的依赖坐落于<dependencies>元素的<dependency>中,dependencies可以包含多个dependency。
2.dependency元素可以包含的子元素有:
  groupId,artifactId,version,type,scope,optional,exclusions,其中groupId,artifactId,version是依赖的基本坐标,必不可少。type是依赖的类型,对应于maven坐标的packaging。
3.依赖范围

3.1. maven的3种classpath
       maven在编译项目主代码的时候需要使用一套classpath,在编译和执行测试的时候会使用另外一套classpath,最后在实际运行的时候,又会使用另外一套classpath。

3.2. 依赖范围就是控制依赖于这三种classpath(编译主代码classpath,测试classpath,运行classpath)关系。maven有6中依赖范围

 

依赖范围(scope) 对于编译的classpath有效 对于测试的classpath有效 对于运行的classpath有效
compile(默认的scope) Y Y Y
test   Y  
provided Y Y  
runtime   Y Y
system Y Y  


 4.传递性依赖

如,A依赖B,B依赖C,则称C是A的一个传递性依赖。

5.maven对传递依赖的解析规则。

1)第一原则:路径最近者优先

如:A->B->C->X(1.0), A->D->X(2.0),对于X构件有2个版本1.0和2.0,因为X(1.0)的依赖长度为3,而X(2.0)的长度为2,所以maven会解析X(2.0)做为当前构件的依赖。

2)第二原则:第一声明者优先

如果第一原则不能解析依赖。如2个依赖的构件的依赖长度是一样的情况。如A->B->X(1.0)和A->C->X(2.0),X的依赖长度都是2,这时,maven会根据X1.0和X2.0在构件中声明的顺序来决定解析哪个版本。

6.排除传递性依赖,然后设置传递性依赖的确切版本(并不是不依赖传递依赖)

在dependency元素下增加元素exclusions元素。声明一些需要排除的传递性依赖。然后增加对传递性依赖的确切版本的依赖。

6.查看某个模块的所有依赖(包括直接依赖和传递性依赖)。

mvn dependency:list

查看依赖树:

mvn dependency:tree

依赖分析:

mvn dependency:analyze

最佳实现:最好在模块中显示声明直接依赖。 

分享到:
评论

相关推荐

    maven依赖小例子

    在这个名为“maven依赖小例子”的源码中,你可以看到如何实际配置和使用Maven依赖的示例。通过分析源码,你可以更好地理解Maven POM.xml文件的结构和依赖管理的工作方式。在实际开发中,熟练掌握Maven依赖管理不仅能...

    doris-1.1.3源码编译broker-maven依赖包repository

    《Doris 1.1.3 源码编译 Broker Maven 依赖包 Repository 深度解析》 Apache Doris 是一个高性能、分布式、在线分析处理(OLAP)的数据仓库系统,它提供了快速的数据查询能力,适用于大规模数据的实时分析。在Doris...

    maven依赖+继承+聚合

    首先,我们来讨论"Maven依赖"。在Java开发中,一个项目往往需要引用其他库或者框架来完成特定功能。Maven通过在`pom.xml`文件中声明依赖(dependencies)来管理这些外部库。依赖声明包括groupId、artifactId和...

    springboot maven 依赖包3

    springboot 的maven依赖包,含有所有maven依赖,网络不好的可以来下。压缩包3.

    maven依赖包(用于博客项目)

    本资源“maven依赖包(用于博客项目)”显然包含了一系列与博客项目相关的Maven依赖,这些依赖可能包括数据库连接库、模板引擎、日志框架、安全组件以及其他有助于构建博客平台的Java库。 1. **Maven仓库**: ...

    dubbox 2.8.4 版本 maven 依赖

    附件为:dubbox2.8.4 maven依赖文件。 使用方法:按照依赖关系,自行创建maven依赖文件夹后,将附件解压至指定文件夹即可使用。 可解决Missing artifact com.alibaba:dubbo:jar:2.8.4 dubbo问题。

    Maven 依赖详细理解.pdf

    依赖范围(scope)是Maven依赖管理的一个重要概念。scope定义了依赖项的使用范围,主要有以下几个选项:compile、provided、runtime和test。compile表示依赖项在编译时需要,provided表示依赖项在编译和测试时需要,但...

    springboot 的maven依赖包1

    springboot 的maven依赖包,含有所有maven依赖,网络不好的可以来下。

    elasticsearch 5.4.0 maven依赖jar包

    "elasticsearch 5.4.0 maven 依赖jar包" 指的是在 Maven 项目中使用 Elasticsearch 5.4.0 版本时,需要的全部依赖库文件。这些 jar 包包括 Elasticsearch 核心库、X-Pack 插件以及其他相关的第三方库,例如 Lucene、...

    jackson2.6.0 jar maven依赖.txt

    jackson2.6.0 jar maven依赖 jackson2.6.0 jar maven依赖jackson2.6.0 jar maven依赖jackson2.6.0 jar maven依赖jackson2.6.0 jar maven依赖

    Geoserver maven 依赖

    本篇将深入探讨"GeoServer Maven依赖"这一主题,以及如何在Java环境中使用Maven构建GeoServer相关的项目。 首先,Maven是Apache软件基金会的一个项目,它通过一个项目对象模型(Project Object Model,POM)来管理...

    jodconverter2.2.2.jar Maven依赖包

    标题“jodconverter2.2.2.jar Maven依赖包”涉及到的是一个Java开发中的关键组件,即JODConverter库的一个特定版本。JODConverter是一个开源的文档转换工具,它允许用户在Java应用程序中方便地将各种Office文档格式...

    常用maven依赖

    将开发过程常用的maven依赖汇总下来了,不用每次都去maven仓库查询,可以节省很多时间

    SSM常用Maven依赖

    SSM基本的Maven依赖文件,测试可用

    kettle7.2和8.2相关maven依赖包仓库

    kettle是国外开源的一款ETL集成工具,其最新版8.2版本改为了maven项目,由于其maven仓库下载实在太慢,这里提供了我费了一两天才下载好的依赖包,直接解压放在本地仓库即可。方便好使,好用的给个五星好评。

    基于Maven依赖的SSM AJAX增删改查demo

    基于Maven依赖的SSM项目 AJAX查询增删改查demo,前端Bootstrop 数据校验:jquery+JSR303后端校验,非常有利于框架初学者学习参考

    maven依赖包

    标题"maven依赖包"暗示了我们正在讨论的是Maven如何处理项目的外部依赖。在Java应用开发中,项目通常会依赖许多第三方库,如Spring、Hibernate、Apache Commons等。Maven的中央仓库存储了大量的开源项目JAR包,...

    activiti开发项目maven依赖POM文件

    基于ACTIVITI引擎进行开发,利用maven进行依赖管理,本文件列出来具体的依赖项

    maven依赖引入失败可以直接复制该jar包

    信鸽推送资源包,maven依赖引入失败可以直接复制该jar包

    maven_package 依赖包(完整)

    在本"maven_package"压缩包中,包含了完整的Maven依赖包,这些包广泛适用于各种Java项目,确保了项目的正常运行和高效开发。比如,提到了"log4j-1.2.17.jar",这是一个著名的日志处理框架,对于系统日志记录至关重要...

Global site tag (gtag.js) - Google Analytics