Maven 中 pom.xml 文件

Maven 是一个项目管理工具 ,可以对 Java 项目进行构建和管理依赖。

本文,我们认识下 pom.xml 文件。POM(Project Object Model, 项目对象模型)Maven 工程的基本工作单位,也是 Maven 的核心。其包含项目的基本信息,用于描述项目如何构建、声明项目依赖等。

dependencies

在该元素下添加依赖,可以包含多个 <dependency> 依赖:

xml 复制代码
<dependencies>
    <dependency></dependency>
    <dependency></dependency>
</dependencies>

<dependency> 之间有三个标识:

  • groupId: 定义隶属的实际项目
  • artifactId: 定义项目中的一个模块
  • version: 依赖或者项目的版本
xml 复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-start-web</artifactId>
</dependency>

scope

如果在编译的时候需要而在发布的时候不需要的 JAR 包,则可以使用 scope 标签标记该包,并将值设置为 provided

xml 复制代码
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
</dependency>
  • compilescope 的默认值,表示该依赖项目需要参与当前项目的编译、测试、运行阶段,是比较强的依赖。打包时也要包含进去。
  • provided:上面提到👆
  • runtime:会作用在运行和测试阶段。
  • system :和 provided 相似,但是在系统中要以外部 JAR 包的形式提供,Maven 不会在 repository 中查找它。
  • test:会作用在测试阶段。

properties

<properties></properties> 中自定义变量,方便在依赖配置时引用变量,可达到统一版本号的目的。比如:

xml 复制代码
<properties>
    <java.version>1.8.0</java.version>
    <solr.version>8.0.0</solr.version>
</properties>

通过 ${变量名} 来调用:

xml 复制代码
<dependency>
    <groupId>org.apache.solr</groupId>
    <artifactId>solr-solrj</artifactId>
    <version>${solr.version}</version>
</dependency>

plugin

在创建 Spring Boot 项目的时,默认提供了 spring-boot-maven-plugin 插件。它提供打包时需要的信息,将 Spring Boot 应用打包为可执行的 JAR 或者 WAR 文件。

pom.xml 类比 package.json

参考

相关推荐
我叫张小白。1 分钟前
Vue3 响应式数据:让数据拥有“生命力“
前端·javascript·vue.js·vue3
laocooon5238578862 分钟前
vue3 本文实现了一个Vue3折叠面板组件
开发语言·前端·javascript
随风飘的云2 分钟前
redis的qps从100飙升到10000的全流程解决方案
后端
0***h9422 分钟前
使用 java -jar 命令启动 Spring Boot 应用时,指定特定的配置文件的几种实现方式
java·spring boot·jar
用户345848285054 分钟前
java除了AtomicInteger,还有哪些常用的原子类?
后端
刘一说11 分钟前
Nacos 与 Spring Cloud Alibaba 集成详解:依赖、配置、实战与避坑指南
spring boot·spring cloud·微服务·架构
IT_陈寒30 分钟前
React 18并发渲染实战:5个核心API让你的应用性能飙升50%
前端·人工智能·后端
一 乐41 分钟前
购物|明星周边商城|基于springboot的明星周边商城系统设计与实现(源码+数据库+文档)
java·数据库·spring boot·后端·spring
科普瑞传感仪器43 分钟前
从轴孔装配到屏幕贴合:六维力感知的机器人柔性对位应用详解
前端·javascript·数据库·人工智能·机器人·自动化·无人机
n***F8751 小时前
SpringMVC 请求参数接收
前端·javascript·算法