首页 > 其他分享 >maven中的parent、dependencyManager、dependency的用法和区别

maven中的parent、dependencyManager、dependency的用法和区别

时间:2023-10-26 12:45:53浏览次数:40  
标签:dependencyManager parent 项目 jar maven dependency 引入

maven中的parent、dependencyManager、dependency的用法和区别

一、parent一般使用场景:

比如有3个项目A、B和C,都要使用到某个相同的jar包,如果都单独引用,后期需要修改,不好维护,此时可以创建一个parent项目P,里面打包方式为pom,不需要编写任何代码,只需要管理jar包,在P项目中,引入公共的jar包,然后在A、B、C项目中,使用parent标签,引入P作为依赖,就可以使用P项目中所有引入的jar包了

1.P项目中的pom文件,引入了fastJson,打包方式pom

2.在A项目中没有使用parent引入P项目,不能正常使用fastjson的jar包

3.使用parent标签,引入P项目之后,项目正常使用到fastjson的jar包

二、dependencyManager使用场景:

比如有3个项目A、B和C,A项目使用a.jar,B项目使用b.jar,C 项目使用c.jar,此时用parent标签,会在ABC3个项目中,把3个jar包全部引入

该场景需要用dependencyManager标签,在P项目中,用dependencyManager来维护a,b,c3个jar包,并引入jar包的版本,ABC使用dependency来引入需要的jar包即可

1.P项目:

  1. <dependencyManagement>
  2. <dependencies>
  3. <!--a-->
  4. <dependency>
  5. <groupId></groupId>
  6. <artifactId></artifactId>
  7. <version></version>
  8. </dependency>
  9. <!--b-->
  10. <dependency>
  11. <groupId></groupId>
  12. <artifactId></artifactId>
  13. <version></version>
  14. </dependency>
  15. <!--c-->
  16. <dependency>
  17. <groupId></groupId>
  18. <artifactId></artifactId>
  19. <version></version>
  20. </dependency>
  21. </dependencies>
  22. </dependencyManagement>

2.A项目:引入a.jar即可,不需要指定版本,版本由P来维护,B、C项目同理

  1. <!--依赖关系,引入a-->
  2. <dependencies>
  3. <dependency>
  4. <groupId></groupId>
  5. <artifactId></artifactId>
  6. <scope></scope>
  7. </dependency>
  8. </dependencies>

三、小结一下:(总结的不全)

parent与dependencyManager的区别

1.继承了parent,会继承parent项目中的所有jar包

2.dependencyManager只用来维护jar包,子项目可以通过dependency引用指定jar包来使用

parent与dependency的区别

1.使用parent,只能使用parent中引入的jar包,用不了parent中的代码方法

2.使用dependency,能使用parent中引入的jar包,也可以parent中的代码方法

原文链接:https://blog.csdn.net/zifengye520/article/details/116002411

标签:dependencyManager,parent,项目,jar,maven,dependency,引入
From: https://www.cnblogs.com/sunny3158/p/17789152.html

相关文章

  • maven创建普通java项目访问mysql-仅jdbc
    已知:1、maven对普通Java项目的创建,参考 https://www.cnblogs.com/wanjinliu/p/17706089.html 。2、java常规访问mysql数据库,需要用到jdbc驱动。调用的jar包,最新为“mysql-connector-j”--这个名字可以不记得,看见能认识它就行。包、类入门用法,参考 https://www.cnblogs.com/......
  • Java系列 | 如何讲自己的JAR包上传至阿里云maven私有仓库【云效制品仓库】
    什么是云效云效是云原生时代一站式BizDevOps平台,产研数字化同行者,支持公共云、专有云和混合云多种部署形态,通过云原生新技术和研发新模式,助力创新创业和数字化转型企业快速实现产研数字化,打造“双敏”组织,实现10倍效能提升。制品仓库Packages云效制品库Packages致力于帮助开......
  • 华为镜像jdk,阿里maven地址
    https://repo.huaweicloud.com/java/jdk/maven仓库https://developer.aliyun.com/mirror/maven安装了maven,但在执行mvn-v或maven-versions时提示bash:maven:未找到命令...应该是环境变量出错,把MAVEN_HOME的路径换到PATH上就可以了,如下:exportJAVA_HOME=/usr/local/java......
  • Linux配置java和maven环境变量
    修改/etc/profile文件,新增如下代码exportJAVA_HOME=/usr/local/btjdk/jdk8exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jarexportPATH=$PATH:$JAVA_HOME/binexportM2_HOME=/usr/local/maven/apache-maven-3.9.4exportPATH=$PATH:$M2_HOME/bin刷新/etc/prof......
  • Maven打包报错问题的解决-- No goals have been specified for this build. You must
    问题描述在使用maven执行打包操作时,出现了这样的错误:上面的图片是网上的图,我的图片忘记截图了;问题解决在我们创建的项目里面的pom.xml文件里面的dependencies标签后面,新建一个build标签,并在build标签里面放上这句代码:<defaultGoal>compile</defaultGoal>保存退出,然后重新......
  • IEDA-Maven项目开发步骤
    1. 打开IDEA界面,选择“NewProject” 2. 输入项目名称和基本信息输入项目名称、选择存放路径、JDK版本、以及GroupId、ArtifactId。GroupID:是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。GroupID定义了项目属于哪个组,举个例子,如果你的公......
  • Maven-安装与配置
    1.下载maven从官方下载maven,下载页面:http://maven.apache.org/download.cgi 2.安装mavenmaven压缩包解压到一个没有中文,空格或其他特殊字符的文件夹内即可使用。 3.配置maven环境变量maven的使用是在jdk的基础上,所以电脑必须有jdk(1).新增环境变量:MAVEN_HOME (2)......
  • ?Maven踩坑实录
    本文记录学习or工作时一些Maven常见操作以及踩坑的地方,以此文做以记录。一、Maven如何使用私服地址mvninstall的时候想要的是从私服下载jar包,此处我就踩了坑。SpringBoot项目,通过mvninstall,Maven一直从maven2仓库进行下载,我明明没有在项目或者setting.xml中配置Maven2仓库的url路......
  • Maven基础
    官网:https://maven.apache.org/目录结构安装一一般安装后通过idea中的插件使用maven坐标依赖范围生命周期......
  • Maven中的dependencyManagement 详解
    1.作用:在Maven中dependencyManagement的作用其实相当于一个对所依赖jar包进行版本管理的管理器。2.pom.xml文件中,jar的版本判断的两种途径:(1)如果dependencies里的dependency自己没有声明version元素,那么maven就会到dependencyManagement里面去找有没有对该artifactId和groupI......