前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JavaWeb】maven依赖管理

【JavaWeb】maven依赖管理

作者头像
客怎眠qvq
发布2023-10-23 15:08:51
1290
发布2023-10-23 15:08:51
举报
文章被收录于专栏:某菜鸟の小屋某菜鸟の小屋

前言

记录学习JavaWeb课程中的部分知识点,包括maven依赖管理、maven高阶、Mybatis、SpringBoot自动配置等。本篇是关于maven对依赖包管理的内容。

maven依赖管理

依赖配置

在项目的 pom.xml 中配置对应的依赖(当前项目运行需要的 jar 包),包括项目组织名、依赖包名及对应版本。

代码语言:javascript
复制
<dependencies>
  
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.0.3</version>
  </dependency>
  
  <dependency>
    <groupld>ch.qos.logback</groupld>
    <artifactld>logback-classic</artifactld>
    <version>1.2.3</version>
  </dependency>
  
  <dependency>
    <groupld>...</groupld>
    <artifactld>...</artifactld>
    <version>...</version>
  </dependency>
  
</dependencies>
  • groupidartifactId被统称为“坐标”,是为了保证项目唯一性而提出的,如果你要把你项目弄到maven本地仓库去,你想要找到你的项目就必须根据这两个id去查找。
  • groupIdgroupId分为几个字段,例如 org.apache.tomcat ,前面的 org 叫做域,后面的是项目组织者起的域名,tomcat.apache.org正是tomcat的官网。
  • artifactIdartifactId一般是项目名或者模块名。(可以浅显地理解为 依赖包的名称)

域又分为org、com、cn等等许多,其中org为非营利组织,com为商业组织。举个apache公司的tomcat项目例子:这个项目的groupId是org.apache.tomcat,它的域是org(因为tomcat是非营利项目),公司名称是apache,artigactId是tomcat。

一般来说,包名根目录 = groupId + artifactId。这个是不允许和别人重复的,尤其是需要上线的项目。一般公司为了不重复都会注册一个域名(URL用的那种),这样就肯定不会重复了。

配置完成后,点击maven管理的刷新按钮,即可载入对应依赖(从本地仓库引入 或者 从远程仓库下载后引入)

依赖传递

依赖具有传递性

  • 直接依赖:在当前项目中通过依赖配置建立的依赖关系
  • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源
代码语言:javascript
复制
<depencies>
  <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
    
    <exclusions>
      <exclusion>
        <groupId>org.junit.vintage</groupId>
        <artifactId>junit-vintage-engine</artifactId>
      </exclusion>
    </exclusions>
    
  </dependency>
</depencies>

这里将Spring Boot测试启动器spring-boot-starter-test添加到项目的依赖项中,并在该依赖项中排除Junit Vintage引擎依赖项junit-vintage-engine,以便使用其他测试框架,其中scope的含义见依赖范围

依赖范围

scope参数含义:

  • compile:参与程序的运行、测试及打包,留空时默认为compile
  • test:只在测试程序范围有效,不参与主程序和打包
  • provided:不参与打包
  • runtime:不参与主程序

生命周期

当点击install时,maven会自动运行 compile、test、package、install 整个阶段。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • maven依赖管理
    • 依赖配置
      • 依赖传递
        • 依赖范围
          • 生命周期
          相关产品与服务
          腾讯云服务器利旧
          云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档