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

【Maven】Maven 中 pom.xml 文件

文章目录

  • 前言
    • 什么是 pom?
    • pom配置一览
  • 1. dependencies
  • 2.scope
  • 3.properties
  • 4.plugin
  • 参考

前言

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

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

什么是 pom?

POM 是 Project Object Model 的缩写,即项目对象模型。

pom.xml 就是 maven 的配置文件,用以描述项目的各种信息。

pom配置一览

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><!-- The Basics --><groupId>...</groupId><artifactId>...</artifactId><version>...</version><packaging>...</packaging><dependencies>...</dependencies><parent>...</parent><dependencyManagement>...</dependencyManagement><modules>...</modules><properties>...</properties><!-- Build Settings --><build>...</build><reporting>...</reporting><!-- More Project Information --><name>...</name><description>...</description><url>...</url><inceptionYear>...</inceptionYear><licenses>...</licenses><organization>...</organization><developers>...</developers><contributors>...</contributors><!-- Environment Settings --><issueManagement>...</issueManagement><ciManagement>...</ciManagement><mailingLists>...</mailingLists><scm>...</scm><prerequisites>...</prerequisites><repositories>...</repositories><pluginRepositories>...</pluginRepositories><distributionManagement>...</distributionManagement><profiles>...</profiles>
</project>

1. dependencies

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

<dependencies><dependency></dependency><dependency></dependency>
</dependencies>

之间有三个标识:

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

2.scope

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

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

3.properties

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

<properties><java.version>1.8.0</java.version><solr.version>8.0.0</solr.version>
</properties>

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

<dependency><groupId>org.apache.solr</groupId><artifactId>solr-solrj</artifactId><version>${solr.version}</version>
</dependency>

4.plugin

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

pom.xml 类比 package.json

参考

  • Maven POM
  • 《Spring Boot 实战派》
http://www.lryc.cn/news/98180.html

相关文章:

  • 2、Linux驱动开发:模块_引用符号
  • Python web实战 | Docker+Nginx部署python Django Web项目详细步骤【干货】
  • 【uniapp】实现买定离手小游戏
  • 【vim 学习系列文章 3 - vim 选中、删除、复制、修改引号或括号内的内容】
  • webpack联邦模块介绍及在dumi中使用问题整理
  • 记录一下Kotlin: Module was compiled with an incompatible version of Kotlin.的问题
  • html中使用Vue+element UI动态创建表单数据不显示问题
  • CentOS下 Docker、Docker Compose 的安装教程
  • [OnWork.Tools]系列 02-安装
  • 【外键合并python】
  • Mongodb SQL 到聚合映射快速参考
  • 腾讯云标准型S6/SA3/SR1/S5/SA2服务器CPU处理器大全
  • idea 关于高亮显示与选中字符串相同的内容
  • 【重点:单例模式】特殊类设计
  • 智能家居是否可与ChatGPT深度融合?
  • LED芯片 VAS1260IB05E 带内部开关LED驱动器 汽车硬灯带灯条解决方案
  • 微信小程序插件 painter 生成海报、二维码
  • Python版day60
  • windows C++多线程同步<3>-互斥量
  • (学习笔记-系统结构)Linux内核与windows内核
  • find_in_set在oracle下的解决方案
  • 智能垃圾桶
  • 面试题-TS(十):如何处理可选属性和默认参数?
  • Istio Pilot源码学习(一):Pilot-Discovery启动流程、ConfigController配置规则发现
  • 数据结构:顺序表(C实现)
  • 素描基础知识
  • 【Chat GPT】用 ChatGPT 运行 Python
  • cartographer发布畸变矫正后的scan数据
  • Idea中git push to origin/master was rejected错误解决方案
  • docker版jxTMS使用指南:自定义频率型动态管控