2.2.2 认识其中的pom.xml文件

POM(Project Object Model)(翻译:项目对象模型)->
Maven工程的基本单元,也是Maven的核心。它是一个XML文件,包含项目的基本信息,用于描述项目如何构建、声明项目依赖等。
在执行任务或目标时,Maven会先在当前目录中查找pom.xml文件,然后获取所需的配置信息,再执行目标

pom的元素

  1. dependencies
    在此元素下添加依赖,它可以包含多个依赖
  2. dependency
    与之间有3个标识
    ·groupId:定义隶属的实际项目,坐标元素之一
    ·artifactId:定义项目中的一个模块,坐标元素之一
    ·version:依赖或项目的版本,坐标元素之一
    加上能标识唯一的项目或库

dependency用来声明依赖。如果需要添加依赖,则可以在"“和”"元素之间进行添加。
示例代码:

<dependencies>
<dependency>
<groudId>org.springframework.boot</groudId>
<artifactId>spring-boot-starter-web</artifactId>
<dependency> 
<dependencies>
  1. scope
    如果有一个编译时需要而发布时不需要的JAR包,则可以用scope标签标记该包,并将其值设为provided
    scoped的标签参数
参数描述
compilescope的默认值,表示被依赖项目需要参与当前项目的编译、测试、运行阶段,是一个比较强的依赖。打包时也要包含进去
providedprovided表示打包时可以不打包进去,Web Container会提供。该依赖理论上可以参与编译、测试、运行等周期
runtime表示dependency不作用在编译阶段,但会作用在运行和测试阶段,如JDBC驱动使用运行和测试阶段
system和provided相似,打在系统中要以外部JAR包的形式提供,Maven不会在reposity中查找它
test表示dependency作用在测试阶段,不作用在运行阶段。只在测试阶段使用,用于编译和运行测试代码,不随项目发布
  1. properties
    如果要使用自定义的变量,则可以在元素中进行变量的定义,然后在其他节点中引用该变量。它的好处是:在依赖配置时引用变量,可以达到统一版本号的目的
<properties> 
<java.version>1.8</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>
  1. plugin
    在创建SpringBoot项目时,默认提供了spring-boot-maven-plugin插件。它提供打包时需要的信息,将SpringBoot应用打包为可执行的JAR或WAR文件

  2. 完整的pom.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<project xmln="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.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<!--模型版本,声明项目描述符遵循那个POM模型版本,模型版本很少改变,但它是必不可少的,这是
为了在Maven引入新特性或其他模型变更时,确保稳定性-->
	<modelVersion>4.0.0</modelVersion>
	<!--父项目的坐标,如果项目没规定某个元素的值,那么父项目中的对应值即为项目的默认值,坐标包括
group、artifactId和version-->
	<parent>
		<!--被继承的父项目的唯一标识符-->
		<groupId>org.springframework.boot</groupId>
		<!--被继承的父项目的构件标识符-->
		<artifactId>spring-boot-starter-parent</artifactId>
		<!--被继承的父项目的版本号-->
		<version>2.1.3.RELEASE</version>
		<!--父项目的pom.xml文件的相对路径,相对路径允许一个不同的路径,默认值是../pom.xml 
	Maven在构建当前项目的地方寻找父项目的POM,然后在文件系统的relativePath位置寻找(如果没
	找到,则继续在本地仓库寻找,最后再远程仓库中寻找父项目的POM)-->
		<relativePath/>
	</parent>
	<!--公司或组织的唯一标志(项目的全球唯一标识符),并且配置时生成的路径也是由此生成的,通常使用全限
定的报名区分该项目和其他项目,如com.companyname.project,Maven会将该项目生成的JAR包放在本地路径:
/com/companyname/project-->	 
	<groupId>com.example</groupId>
	<!--项目的唯一ID,一个groupId下面可能有多个项目,靠artifactId来区分-->
	<artifactId>demo</artifactId>
	<!--版本号,格式为主版本.次版本.增量版本-限定版本号-->
	<version>0.0.1-SNAPSHOT</version> 
	<!--项目的名称,用于Maven产生的文档-->
	<name>HelloWord</name>
	<!--项目的详细描述,用于Maven产生的文档。这个元素能够在用HTML格式时使用(例如,CDATA中的文本会被解析器忽略,就可以包含HTML标签)-->
	<description>Demo project for Spring Boot</description>
	<properties>
		<!--项目开发的Java版本号-->
		<java.version>1.8</java.version>
	</properties>
	<!--项目的依赖项,可以通过该元素描述项目相关的所有依赖,它们自动从项目定义的仓库中下载-->
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-wweb</artifactId>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</group>
			<artifactId>lombok</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test<scope>
		</dependency>
	</dependencies>
	<!--构建项目(打包生成可执行文件)需要的信息-->
	<build>
		<!--项目使用的插件列表-->
		<plugins> 
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值