转自:maven:pom文件详解_pom directory_夜雨落花的博客-优快云博客
一、maven项目的目录结构
pom文件定于了一个maven项目的maven配置,一般pom文件的放在项目或者模块的根目录下。
maven的遵循约定大于配置,约定了如下的目录结构:
二、根元素和必要配置
<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">
<!--xmlns命名空间-->
<!--XSD 文件 可以理解为 XML 文档可以自定义的语法或格式检查器-->
<!--xmlns规定了xml可以有什么属性。-->
<!-- 模型版本 -->
<modelVersion>4.0.0</modelVersion>
<!-- 公司或者组织的唯一标志,也是打包成jar包路径的依据 -->
<!-- 例如com.companyname.project-group,maven打包jar包的路径:/com/companyname/project-group -->
<groupId>com.companyname.project-group</groupId>
<!-- 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的 -->
<artifactId>project</artifactId>
<!-- 项目当前版本,格式为:主版本.次版本.增量版本-限定版本号 -->
<version>1.0</version>
<!--项目产生的构件类型,包括jar、war、ear、pom等 -->
<packaging>jar</packaging>
<properties>
<java.version>8</java.version>
<!--指定编译版本-->
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<!--指定编码方式-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<!--依赖-->
<dependencies>
<!--spring-boot-starter-web内引用spring-boot-starter包,
不要要单独导入spring-boot-starter包。-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--springboot测试依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!--mysql依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!--redis依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!--lombook-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!--spring boot依赖的包 和普通spring项目依赖的的包是不一样的。
引入这个包后,spring就会自动将mybatis相关配置注册到容器,
然后,我们就可以直接使用mybatis操作数据库了-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.4</version>
</dependency>
<!-- pagehelper 分页插件-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.1.3</version>
</dependency>
</dependencies>
<build>
<!--spring-boot-maven-plugin是spring boot提供的maven打包插件。可打直接可运行的jar包或war包-->
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
project是pom文件的根元素,project下有modelVersion、groupId、artifactId、version、packaging等重要的元素。其中,groupId、artifactId、version三个元素用来定义一个项目的坐标,也就是说,一个maven仓库中,完全相同的一组groupId、artifactId、version,只能有一个项目。
- project:整个pom配置文件的根元素,所有的配置都是写在project元素里面的;
- modelVersion:指定了当前POM模型的版本,对于Maven2及Maven 3来说,它只能是4.0.0;
- groupId:这是项目组的标识。它在一个组织或者项目中通常是唯一的。
- artifactId:这是项目的标识,通常是工程的名称。它在一个项目组(group)下是唯一的。
- version:这是项目的版本号,用来区分同一个artifact的不同版本。
- packaging:这是项目产生的构件类型,即项目通过maven打包的输出文件的后缀名,包括jar、war、ear、pom等。