当前位置: 首页 > news >正文

东莞微信网站建设信息公司网站建设方案

东莞微信网站建设信息,公司网站建设方案,郑州专业网站建设价格,免费开店平台现在Maven项目管理,在开发中时比较常用的,在一些项目汇总遇到依赖冲突的问题之后,还是没有能有一个很好的解决办法,这次就来看看在使用Maven管理依赖的过程中dependencies与dependencyManagement的区别。 DepencyManagement应用场…

在这里插入图片描述

  现在Maven项目管理,在开发中时比较常用的,在一些项目汇总遇到依赖冲突的问题之后,还是没有能有一个很好的解决办法,这次就来看看在使用Maven管理依赖的过程中dependencies与dependencyManagement的区别。

DepencyManagement应用场景

  当我们的项目模块很多的时候,使用Maven管理项目是非常方便的,它可以我们管理、构建、文档、报告、依赖、SCMS、发布、分发等等一系列的东西。可以方便编译代码、进行依赖管理、管理二进制库等等操作。

  由于在项目中使用的模块较多,所以又可以抽象一层,抽出一个itoo-base-parent来管理子项目的公共依赖。为了项目能够正确地运行,必须让所有子项目使用依赖项的统一版本,必须确保应用的各个项目的依赖项和版本一致,才能保证测试和发布是相同的结果。

  在项目的顶层的POM文件中,会看到一个dependencyManagement元素。通过它来管理jar的版本,让子项目中引用一个依赖而不用显示的列出版本号。Maven会沿着父层次向上走,直到找到拥有dependencyManagement元素的项目,然后她就会使用在这个dependencyManagement元素中指定的版本号。

在这里插入图片描述

<dependencyManagement>  <dependencies>  <dependency>  <groupId>javax</groupId>  <artifactId>javaee-api</artifactId>  <version>${javaee-api.version}</version>  </dependency>  </dependencies>  
</dependencyManagement>  

父子继承

<!--继承父类-->  <parent>  <artifactId>itoo-base-parent</artifactId>  <groupId>com.tgb</groupId>  <version>0.0.1-SNAPSHOT</version>  <relativePath>../itoo-base-parent/pom.xml</relativePath>  </parent>  <modelVersion>4.0.0</modelVersion>  <artifactId>itoo-base</artifactId>  <packaging>ejb</packaging>  <!--依赖关系-->  <dependencies>  <dependency>  <groupId>javax</groupId>  <artifactId>javaee-api</artifactId>  </dependency>  <dependency>  <groupId>com.fasterxml.jackson.core</groupId>  <artifactId>jackson-annotations</artifactId>  </dependency>  <dependency>  <groupId>org.eclipse.persistence</groupId>  <artifactId>org.eclipse.persistence.jpa</artifactId>  <scope>provided</scope>  </dependency>  </dependencies>  

  这样做的好处是:统一管理项目的版本号,确保应用的各个项目的依赖和版本一致,才能保证测试和发布是相同的成果。所以,在顶层pom中定义共同的依赖关系。同时可以避免在每个使用的子项目中都声明一个版本号,这样想升级或者想切换到另一个版本的时候只需要在父类容器中进行更新,而不需要任何一个子项目的修改;如果某个子项目需要另一个版本号的时候,只需要在dependencies中声明对应的版本号就可以了,子类就会使用子类声明的版本号,而不继承父类版本号。

Dependencies

  dependencyManagement,所有生命在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。

区别

  dependencies 就是在子项目中不引入该依赖项,那么子项目中仍然会从父项目中继承该项目,这个继承属于是全部继承。

  dependencyManagement 里只声明依赖,并不现实引入,因此子项目需要显示声明需要用的依赖。如果不在子项目中声明依赖,是不会从父项目中继承下来;只有在子项目中写入了该依赖项,并且没有指定具体的版本,才会从父项目再继承该依赖项,并且version和scope都是从父POM文件中进行读取。另外如果子项目中指定了版本号,那么会使用子项目中指定的版本号。

Maven 约定优于配置

  Maven提出这样的约束主要是为项目提供合理的默认行为,不需要一些不必要的配置,提供了默认的目录

  • src 源代码和测试代码的根目录
  • main应用代码的目录
  • java 源代码的目录
  • resource 项目资源文件
  • test 测试代码源目录
  • target 编译后的各种文件、jar文件等的路径。

  对于Maven的约定优于配置的理解,一方面对小型项目基本满足不需要自己配置东西,使用Maven已经配置好的东西,快速开发。另一方面,对于不满足的项目还需要一些自定义的内容,体现了灵活性。配置大量减少,随着项目的越复杂这种优势越明显。

总结区别

  dependencies中jar直接加入到项目中,管理的是依赖关系(如果有父级pom,子级pom,则子级pom中只能被动接受父级的版本);

  dependencyManagement 主要管理版本,对于子类继承同一个父类是很有用的,集中管理依赖版本不添加依赖关系,对于其中定义的版本,子pom中不一定继承父级pom中的所有版本。

http://www.yidumall.com/news/29228.html

相关文章:

  • 做微信广告网站有哪些内容其他搜索引擎
  • 海口市住房和城乡建设局网站全网媒体发布平台
  • 济源网站建设公司百度pc版网页
  • 特效型网站关键词排名优化软件
  • 宁波网站制作怎样培训课程有哪些
  • 多语言企业网站模板游戏推广员到底犯不犯法
  • 做网站一屏有多大推广普通话宣传语
  • 漫画网站做任务给金币网站搜索优化
  • 网站导航的交互怎么做免费发广告的平台
  • 网站开发总结与未来展望宁波seo教程
  • 福田汽车公司百度seo关键词排名
  • php建设网站怎么用上海seo排名
  • 做民宿怎么登录网站seo会被取代吗
  • 东莞建站网站模板优化关键词排名提升
  • 百度网站建设是什么意思2024小学生时事新闻十条
  • 可以做网站头像的图片广告推广精准引流
  • 厦门广告设计制作公司搜索引擎营销优化诊断训练
  • 建网站电话公司广告推广
  • 徐州 商城网站建设高级seo优化招聘
  • 网站模板整站舟山百度seo
  • 黄石建网站百度新闻下载安装
  • 网站首页图片做多大影视剪辑培训机构排名
  • 典型的电子商务网站有哪些韩国搜索引擎排名
  • 山东专业网站建设友情链接对网站的作用
  • 苏州做网站的公司智慧营销系统平台
  • 北京建设专职查询网站网络推广运营主要做什么
  • centos 7.2 做网站seo北京优化
  • 网站标识代码怎么加手游推广渠道平台
  • 怎么做电商平台网站短视频seo排名加盟
  • 建站最好的创建网页步骤