Maven的生命周期与依赖作用域介绍

说明:本文介绍Maven的生命周期,以及在pom.xml文件中每个依赖(dependency标签内)scope标签的内容。

Maven生命周期

在IDEA项目中,右侧边栏,点Maven,可以看到以下生命周期。

其中,

  • clean:删除掉编译生成的字节码文件,打包生成的jar包;

  • validate:验证项目是否正确,是否缺少某些必要的配置;

  • compile:编译项目源码,根据源文件生成字节码文件;

  • test:单元测试,执行项目中所有的测试用例;

  • package:打包项目,把编译生成的字节码文件、其他资源文件打成一个jar包或者war包。包括编译、测试;

  • verify:检查打包生成的jar包是否正确,是否符合指令标准以及各种规则;

  • install:把项目生成的jar包或者war包安装到本地仓库;

  • site:生成项目站点文档,把项目的信息和文档生成一个静态的网站;

  • deploy:把项目生成的jar包或者war包上传到远程仓库,一般是公司搭建的私服里;

依赖的作用域

在pom文件中,单个依赖如下:

xml 复制代码
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.11.2</version>
    <scope>test</scope>
</dependency>

其中,

  • groupId:企业唯一标识,一般是公司域名反写;

  • artifactId:工程项目的唯一标识;

  • version:版本号;

  • scope:作用域,依赖的范围;

其中,依赖的scope标签可以有以下值:

  • compile:编译和运行时都需要,默认值,可省略不写;

  • provided:编译时需要,运行时不需要,如lombok、servlet API;

  • runtime:运行时需要,编译时不需要,如JDBC驱动;

  • test:只在测试时需要,不会被打包到最终的jar包中,如junit,只能在单元测试里使用,不能在正式代码里使用;

  • system:该依赖是本地文件系统中提供的,需配合systemPath标签使用,指定依赖位置;

  • import:导入其他pom文件的依赖,不会导入实际的依赖,只是用来管理依赖的版本号;

总结

本文介绍了Maven的生命周期和依赖作用域,scope标签的选项值

相关推荐
鹿导的通天塔39 分钟前
99%的人都不知道Codex 的 goal 神技!完整设置及提示词模板教学
后端
huipeng9261 小时前
企业级微服务开发实战(一):项目启动与工程化设计
java·开发语言·spring boot·spring cloud·微服务·云原生·架构
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ1 小时前
java实现excel导入、下载模板方法
java·开发语言·excel
段ヤシ.2 小时前
回顾Java知识点,面试题汇总Day12(持续更新)
java·mybatis
ltl2 小时前
Transformer 原论文怎么训出来的:8 张 P100、12 小时、warmup 4000 步
后端
why技术2 小时前
AI Coding开始进入第四个时代,我还没上车呢!
前端·人工智能·后端
java1234_小锋2 小时前
Spring AI 2.0 开发Java Agent智能体 - MCP(模型上下文协议)
java·人工智能·spring·spring ai
seven97_top2 小时前
两小时入门Sentinel
java·sentinel
叶小鸡2 小时前
Java 篇-项目实战-AI 天机学堂(从 0 到 1)-day1
java·开发语言
bigbearxyz3 小时前
Caused by: java.net.SocketException: Connection reset问题排查
java·keepalived·proxysql