3.3.4 编写Pom文件
pom文件是一个xml文件,用于描述项目用到的资源、项目依赖、插件、代码位置等信息,是整个工程的核心。pom.xml文件一般放在项目的根目录下。以3.2.1节案例中工程的pom文件为例来讲解,其代码如下:
<?xml version="1.0" encoding="UTF-8"?> <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.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.forezp</groupId> <artifactId>hello-world</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>hello-world</name> <description>Demo project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.0.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8 </project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8 </project.reporting.outputEncoding> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </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>
pom.xml的第一行指定了xml的版本和编码方式。project的标签是该文件的根元素,它声明了pom相关的命名空间。modelVersion指定了pom的版本,对于Maven 3来说,它的版本为4.0.0。
groupId、artifactId和version是3个最重要的标签,根据这3个标签,可以在Maven仓库中唯一确定该依赖Jar。其中,groupId代表了公司、组织的名称,一般为公司域名的倒写,如本例中的com.forezp;artifactId代表该项目的全局唯一Id,如本例中的hello-world;version是指该项目的版本。将项目上传到Maven仓库中,有这3个标签才能准确无误地找到该Jar包。
parent标签用于指定父pom,本案例采用的父pom是版本号为2.1.0.RELEASE的spring-boot-starter-parent的pom。
properties标签用于声明一些常量,例如上述代码中的源码编码为UTF-8,输出代码也为UTF-8,Java版本为1.8。
dependencies标签为依赖的根元素,里面可以包含多个dependency元素,dependency里具体为各个依赖Jar的3个坐标,即groupId、artifactId和version。其中version可以缺省,如果缺省,就会默认为最新发布的版本。
build为构建标签,它可以包含plugins(插件)标签,plugins标签中可以包含若干个plugin标签,可以根据项目的需求添加相应的plugin。本例中有spring-boot-maven-plugin插件,用此插件可以启动Spring Boot工程。