pom.xml用于管理项目依赖和构建过程
关系: 依赖, 聚合, 继承
统一编码
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
命名
<name>spring_boot</name>
<description>Demo project for Spring Boot</description>
Maven-webapp
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>lee</groupId>
<artifactId>lee_ssh</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>lee_ssh Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>lee_ssh</finalName>
</build>
</project>
统一 Maven 编译版本
<build>
<plugins>
<!-- Compile -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
打包跳过单元测试
<!-- Test -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<skipTests>true</skipTests>
<configuration>
</plugin>
pom.xml
<?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/maven-v4_0_0.xsd">
<!-- 指定当前pom版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 反写公司网址,最基本的坐标的架构 -->
<groupId>com.example</groupId>
<!-- 项目名-模块名 -->
<artifactId>hello-core</artifactId>
<!-- 版本号
第一个数字大版本号
第二个数字分支版本号
第三个数字分支小版本号
1.0.0
-snapshot 快照
-alpha 内部测试
-beta 公测
-release 稳定
-GA 正式发布 -->
<version>1.0.0-SNAPSHOT</version>
<!-- 可选,打包格式,
默认jar,
war,
zip,
pom,聚合其它maven项目,或作为其它maven项目的parent -->
<packaging>jar</packaging>
<!-- 可选,项目描述名 -->
<name>hello</name>
<!-- 可选,统一属性 -->
<properties>
<!-- 设定编码格式 -->
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<!-- ${junit.version}变量 -->
<junit.version>3.8.1</junit.version>
</properties>
<!-- 可选,开发团队的项目网址 -->
<url>www.example.org<url>
<!-- 可选,项目描述 -->
<description></description>
<!-- 可选,开发人员信息 -->
<developers></developers>
<!-- 可选,许可信息,如开源项目 -->
<licenses></licenses>
<!-- 可选,组织信息 -->
<organization></organization>
<!-- 依赖 -->
<dependencies>
<!-- 依赖信息,子标签为坐标 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<!-- ${junit.version}值为3.8.1 -->
<version>${junit.version}</version>
<!-- 可选,依赖范围
默认,compile,编译测试运行都有效
provided,编译和测试时有效
runtime,测试运行有效
test,测试有效
system,与本机系统相关,可移植性差
import,只使用在dependencyManagement中生效
-->
<scope></scope>
<!-- 可选,设置依赖是否可继承
默认,true,可继承
false,不可继承 -->
<optional></optional>
<!-- 可选,排除项目依赖列表
A依赖B,B依赖C,那么A也依赖C。
如果要A不依赖C,则要用exclusions标签来排除依赖。
-->
<exclusions>
<!-- 子标签为坐标 -->
<exclusion>
</exclusion>
</exclusions>
</dependency>
</denpendencies>
<!-- 可选,依赖管理,
用于父项目配置共同的依赖关系,主要配置依赖包相同因素,
如版本,scope。 -->
<dependencyManagement>
</dependencyManagement>
<!-- 构建设置,maven插件在构建时将被使用 -->
<build>
<!-- 插件列表 -->
<plugins>
<!-- 插件坐标,此插件生成*-source.jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<!-- mvn package参数生效 -->
<phase>package</phase>
<goals>
<!-- defaultGoal: 定义默认的目标或者阶段。如install -->
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<!-- 可选,用于继承父pom -->
<parent>
</parent>
<!-- 聚合,与packaging标签相关
执行多个模块的pom
-->
<modules>
<!-- 另一maven项目同上一目录 -->
<module>../hello-other</module>
</modules>
</project>