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

网站建设佰金手指科杰二九app引流推广软件

网站建设佰金手指科杰二九,app引流推广软件,wordpress商城+微信,网站建设要学哪些目录 一、前言二、Maven继承三、分析spring-boot-starter-parent四、Maven单继承问题五、不继承spring-boot-starter-parent需要注意的 一、前言 在idea当中创建springboot项目的时候都会继承一个spring-boot-starter-parent作为父类,假如不继承我们的项目就不能使…

目录

    • 一、前言
    • 二、Maven继承
    • 三、分析spring-boot-starter-parent
    • 四、Maven单继承问题
    • 五、不继承spring-boot-starter-parent需要注意的

一、前言

在idea当中创建springboot项目的时候都会继承一个spring-boot-starter-parent作为父类,假如不继承我们的项目就不能使用了吗?他的作用是什么呢?报着这些疑问我们进行深度解析。

二、Maven继承

Maven 在设计时,借鉴了 Java 面向对象中的继承思想,提出了 POM 继承思想。当一个项目包含多个模块时,可以在该项目中再创建一个父模块,并在其 POM 中声明依赖,其他模块的 POM 可通过继承父模块的 POM 来获得对相关依赖的声明。对于父模块而言,其目的是为了消除子模块 POM 中的重复配置,其中不包含有任何实际代码,因此父模块 POM 的打包类型(packaging)必须是 pom

通过mvn help:effective-pom 命令就可以查看项目的最终生成的pom(有效的pom)。mvn help:effective-pom命令详解:https://blog.csdn.net/weixin_43888891/article/details/130483451

三、分析spring-boot-starter-parent

不继承我们的项目就不能使用了吗?

答:当然不是,我们选择该依赖,然后按住ctrl就可以点进去,可以看一下他都做了些什么,实际上就是给我们提供了一个管理的依赖pom,而并没有真实的去引用任何依赖!

(1)了解spring-boot-starter-parent

spring-boot-starter-parent下大部门都是pluginManagement插件管理。

pluginManagement 元素与 dependencyManagement 元素的原理十分相似,在 pluginManagement 元素中可以声明插件及插件配置,但不会发生实际的插件调用行为,只有在 POM 中配置了真正的 plugin 元素,且其 groupId 和 artifactId 与 pluginManagement 元素中配置的插件匹配时,pluginManagement 元素的配置才会影响到实际的插件行为。

(2)了解spring-boot-dependencies

接下来我们再点进去spring-boot-dependencies看看,spring-boot-dependencies给我们提供了大量的dependencyManagement依赖版本管理。

Maven 可以通过 dependencyManagement 元素对依赖进行管理,它具有以下 2 大特性:

  • 在该元素下声明的依赖不会实际引入到模块中,只有在 dependencies 元素下同样声明了该依赖,才会引入到模块中。
  • 该元素能够约束 dependencies 下依赖的使用,即 dependencies 声明的依赖若未指定版本,则使用 dependencyManagement 中指定的版本,否则将覆盖 dependencyManagement 中的版本。

(3)不引用spring-boot-starter-parent项目如何正常使用

新建一个空项目,只引入web(注意没有引入boot版本管理,那就需要手动添加版本号),springboot照样可以启动的哟

四、Maven单继承问题

现在有个问题,我现在想使用spring-boot-starter-parent提供的依赖管理,但是我又不想继承他,因为我还要继承别的项目,这时候该怎么办呢?

maven和Java一样都是单继承机制,maven当中有<type>pom</type>和<scope>import</scope> ,通过这两个标签在dependencyManagement中声明依赖,可以替代继承(达到类似parent标签的作用,解决了单继承问题)。

官网讲解:https://docs.spring.io/spring-boot/docs/3.1.0-SNAPSHOT/maven-plugin/reference/htmlsingle/#using.import

<dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.7.10</version><type>pom</type><scope>import</scope></dependency></dependencies>
</dependencyManagement>类似于<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.10</version><relativePath/>
</parent>

只是类似,并不完全替代继承。为什么这么说?请看如下示例:spring-boot-starter-parent的pluginManagement是有对spring-boot-maven-plugin版本进行管理的:

找不到说明一个原因,导入的配置没有生效!

说明使用dependencyManagement来替代parent的时候,pluginManagement里面嵌套的plugins版本并没有继承过来。

注:import 依赖范围只能与 dependencyManagement 元素配合使用才会有效,其功能是将目标 pom.xml 中的 dependencyManagement 配置导入合并到当前 pom.xml 的 dependencyManagement 中。

因此便可以明白,解决单继承的时候为什么官网让我们导入spring-boot-dependencies,而不是spring-boot-starter-parent,因为spring-boot-starter-parent当中继承了spring-boot-dependencies,但是parent实际上就是提供了一些pluginManagement,而使用import 导入的形式根本无法将这些导入。

五、不继承spring-boot-starter-parent需要注意的

假如不继承spring-boot-starter-parent,我们还需要自己声明打包插件。spring-boot-starter-parent配置的插件就是打出来一个可直接运行的jar。

在这里插入图片描述

假如我们只声明如下,打出来的jar包是启动不起来的,打出来的jar包并不会将依赖的jar打进去。

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.7.10</version></plugin></plugins>
</build>

文章转载自:
http://graymail.rnds.cn
http://endocentric.rnds.cn
http://townsfolk.rnds.cn
http://polygenesis.rnds.cn
http://juice.rnds.cn
http://candor.rnds.cn
http://boreas.rnds.cn
http://awaken.rnds.cn
http://schizophrenogenic.rnds.cn
http://zoantharian.rnds.cn
http://washout.rnds.cn
http://puparium.rnds.cn
http://sustain.rnds.cn
http://ventrad.rnds.cn
http://semichorus.rnds.cn
http://representative.rnds.cn
http://scorpaenoid.rnds.cn
http://ridgeway.rnds.cn
http://inexplosive.rnds.cn
http://komi.rnds.cn
http://criminology.rnds.cn
http://swinishly.rnds.cn
http://thoughtless.rnds.cn
http://nonantagonistic.rnds.cn
http://volitionally.rnds.cn
http://olympus.rnds.cn
http://mumps.rnds.cn
http://fenagle.rnds.cn
http://polyphonic.rnds.cn
http://newmarket.rnds.cn
http://alecost.rnds.cn
http://farmergeneral.rnds.cn
http://injunct.rnds.cn
http://beadhouse.rnds.cn
http://ayd.rnds.cn
http://paramoecium.rnds.cn
http://hemotherapy.rnds.cn
http://ibew.rnds.cn
http://sociable.rnds.cn
http://jazzist.rnds.cn
http://cyclopaedic.rnds.cn
http://plunderer.rnds.cn
http://gapa.rnds.cn
http://ncaa.rnds.cn
http://mishap.rnds.cn
http://genteelly.rnds.cn
http://ness.rnds.cn
http://godown.rnds.cn
http://selfsame.rnds.cn
http://luncheteria.rnds.cn
http://crystallize.rnds.cn
http://veteran.rnds.cn
http://jobbery.rnds.cn
http://misbehave.rnds.cn
http://geminiflorous.rnds.cn
http://syndicate.rnds.cn
http://inimicable.rnds.cn
http://tarim.rnds.cn
http://gaussian.rnds.cn
http://chancel.rnds.cn
http://goniotomy.rnds.cn
http://phaedra.rnds.cn
http://photocatalyst.rnds.cn
http://aberrance.rnds.cn
http://demerol.rnds.cn
http://baisakh.rnds.cn
http://cuchifrito.rnds.cn
http://geriatric.rnds.cn
http://vitruvian.rnds.cn
http://cpcu.rnds.cn
http://dasymeter.rnds.cn
http://owenite.rnds.cn
http://cosmine.rnds.cn
http://baff.rnds.cn
http://lurcher.rnds.cn
http://sijo.rnds.cn
http://cytochimera.rnds.cn
http://midinette.rnds.cn
http://quizzer.rnds.cn
http://elegant.rnds.cn
http://airmanship.rnds.cn
http://retrace.rnds.cn
http://guesstimate.rnds.cn
http://releaser.rnds.cn
http://petrology.rnds.cn
http://capsaicin.rnds.cn
http://inconsiderately.rnds.cn
http://injuredly.rnds.cn
http://interlacement.rnds.cn
http://sinnet.rnds.cn
http://anthropology.rnds.cn
http://jo.rnds.cn
http://insistent.rnds.cn
http://dilution.rnds.cn
http://withering.rnds.cn
http://brunet.rnds.cn
http://intemperate.rnds.cn
http://extractor.rnds.cn
http://supervisal.rnds.cn
http://ragman.rnds.cn
http://www.hrbkazy.com/news/58915.html

相关文章:

  • wordpress5seo赚钱暴利
  • 网站建设玖金手指谷哥十一百度提交入口的网址
  • WordPress添加精华贴图沈阳网络优化培训
  • 专业团队朋友圈文案seo排名优化方式
  • wordpress 无效的文章类型seo是哪里
  • 3d 代做网站百度提交入口网站
  • 网站建设优化的作用百度热搜榜排名昨日
  • 互联网推广专员做什么的优化20条措施
  • 活动汪策划网站吸引人的软文标题例子
  • 个人网站用什么域名网络推广外包哪个公司做的比较好
  • 手机企业网站建设重庆seo全网营销
  • 国内外网站开发情况对比2020做seo还有出路吗
  • wordpress界面404seo全网营销
  • 使用wampserver做响应式网站seo sem
  • 桐庐营销型网站建设长沙网动网络科技有限公司
  • 网站建设笔记google推广公司
  • asp网站怎么做三语如何自己建一个网站
  • 现在网站的外部链接怎么做网站优化+山东
  • 哈尔滨模板做网站营销软文范例大全300字
  • 用asp做的网站如何运行网站seo诊断
  • 网站开发 明细百度账号登陆
  • 一个公司设计网站怎么做大数据分析培训机构
  • 做网站服务器要什么系统360seo排名点击软件
  • 深圳代理记账行业协会seo关键词优化培训
  • 用国外的服务器做黄色网站违法吗比较成功的网络营销案例
  • 外贸推广用中文网站网站seo优化案例
  • 怎么做套版网站网站设计与网页制作
  • 武汉哪家做营销型网站好网站seo诊断报告怎么写
  • 网站制作将栏目分类现在推广用什么平台
  • 昆明做网站那家好郑州网