博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[摘录] Maven中的DependencyManagement和Dependencies
阅读量:6079 次
发布时间:2019-06-20

本文共 1685 字,大约阅读时间需要 5 分钟。

hot3.png

[摘录] Maven中的DependencyManagement和Dependencies 博客分类: maven  

这里介绍一个在父项目中的根结点中声明dependencyManagement和dependencies的区别

dependencyManagement

Maven 使用dependencyManagement 元素来提供了一种管理依赖版本号的方式。通常会在一个组织或者项目的最顶层的父POM 中看到dependencyManagement 元素。使用pom.xml 中的dependencyManagement 元素能让

所有在子项目中引用一个依赖而不用显式的列出版本号。Maven 会沿着父子层次向上走,直到找到一个拥有dependencyManagement 元素的项目,然后它就会使用在这个dependencyManagement 元素中指定的版本号。

 

例如在父项目里:

Xml代码  
收藏代码
  1. <dependencyManagement>  
  2. <dependencies>  
  3. <dependency>  
  4. <groupId>mysql</groupId>  
  5. <artifactId>mysql-connector-java</artifactId>  
  6. <version>5.1.2</version>  
  7. </dependency>  
  8. ...  
  9. <dependencies>  
  10. </dependencyManagement>  

然后在子项目里就可以添加mysql-connector时可以不指定版本号,例如:

 

Xml代码  
收藏代码
  1. <dependencies>  
  2. <dependency>  
  3. <groupId>mysql</groupId>  
  4. <artifactId>mysql-connector-java</artifactId>  
  5. </dependency>  
  6. </dependencies>  

这样做的好处就是:如果有多个子项目都引用同一样依赖,则可以避免在每个使用的子项目里都声明一个版本号,这样当想升级或切换到另一个版本时,只需要在顶层父容器里更新,而不需要一个一个子项目的修改 ;另外如果某个子项目需要另外的一个版本,只需要声明version就可。

 

dependencyManagement里只是声明依赖,并不实现引入,因此子项目需要显式的声明需要用的依赖。

dependencies

相对于dependencyManagement,所有声明在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。

 

classifier

如果你要发布同样的代码,但是由于技术原因需要生成两个单独的构件,你就要使用一个分类器(classifier)。例如,如果你想要构建两个单独的构件成JAR,一个使用Java 1.4 编译器,另一个使用Java 6 编译器,你就可以使用分类器

来生成两个单独的JAR构件,它们有同样的groupId:artifactId:version组合。如果你的项目使用本地扩展类库,你可以使用分类器为每一个目标平台生成一个构件。分类器常用于打包构件的源码,JavaDoc 或者二进制集合。

 

 

 

也可以在子pom中引用

  <dependencyManagement>

        <dependencies>

            <dependency>

                <!-- Import dependency management from Spring Boot -->

                <groupId>org.springframework.boot</groupId>

                <artifactId>spring-boot-dependencies</artifactId>

                <version>1.1.6.RELEASE</version>

                <type>pom</type>

                <scope>import</scope>

            </dependency>

        </dependencies>

    </dependencyManagement>

 

 

转载于:https://my.oschina.net/xiaominmin/blog/1596898

你可能感兴趣的文章
ArrayBlockingQueue源码解析(2)
查看>>
哈希表
查看>>
成为跨平台的C++程序员 - C++ - language - ITeye论坛
查看>>
让CKEDITOR支持JSP上传
查看>>
SQL FOR XML子句的各种用法
查看>>
HDU 2795 Billboard
查看>>
[原创]ExtAspNet秘密花园(十三) — 布局之行布局和列布局
查看>>
了解JavaScript中的内置对象
查看>>
struts2 获取request、session的方法
查看>>
使用Gitorious搭建私有代码仓库
查看>>
Git工程迁移方法总结(命令行) .(转载)
查看>>
多媒体开发之rtp 打包发流---同网段其他机子sdp 播放不了
查看>>
Android WebView 获取网页的标题
查看>>
PetaPoco利用ODP.NET Managed Driver连接Oracle
查看>>
基础研究,应用研究,开发研究的定义特点及区别
查看>>
Redis常用命令入门4:集合类型
查看>>
021医疗项目-模块二:药品目录的导入导出-介绍poi类
查看>>
带线性阻力的抛射模型
查看>>
[SQL] SQL 基础知识梳理(五) - 复杂查询
查看>>
SSH公钥认证
查看>>