maven pom.xml详解

基本介绍

pom(project object model)项目对象模型,通过pom.xml去表示,当我们要构建一个maven项目时,我们会根据pom.xml的配置进行构建,所以pom.xml对于maven项目来说非常重要。
pom.xml主要由基本配置部分,构建部分(build),环境设置部分。

基本配置

1.项目标识
groupId, artifactId和version是maven的三个核心配置,通过这三个配置,maven能知道具体需要查找什么项目,以及项目的版本,就能成功的定位到一个项目了。

名称 描述
groupId 通常用公司或组织名称来表示,这样我们就能定位到具体的组织和公司了
artifactId 通常用项目名称来表示,这样我们就能知道具体是哪个项目
version 表示项目的版本,与group,artifactId一起使用能唯一标识一个项目包
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>org.codehaus.mojo</groupId>
  <artifactId>my-project</artifactId>
  <version>1.0</version>
</project>

2.packaging
用于指定构建时我们需要构建什么类型的包,可设置的参数主要有jar, rar,ear, ejb, war等。

3.Dependencies
用来指定构建项目时需要依赖哪些外部包,结构如下:
一个< dependencies>可包含多个< dependency>,而每个< dependency>中主要包括以下内容

参数 描述
groupId 项目的组织id
artifactId 项目Id
version 项目版本
type 引入依赖包的类型,默认情况下是jar
classifier 用来标识同一个项目同一个版本的不同打包方式的名称
scope 用来表明什么时候需要使用这个依赖包,可配置值有compile(默认值),provided ,runtime,test,system
systemPath 这个参数生效前提是scope的值为system,即通过指定本地路径方式引入依赖包,systemPath用于指定依赖包的本地路径
exclusions 用来排除通过依赖自动下载的某个包,默认情况下当maven下载某个包时,会自动将下载项目的依赖包自动下载下来,而此时如果我们项目中引入了两个不同的包,但是这两个不同的包都依赖另一个第三方包,但是两个不同的包对于同一个第三方包依赖使用的版本不一样,为了避免冲突,就可以使用exclusion来将第三方包排除
<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
                      https://maven.apache.org/xsd/maven-4.0.0.xsd">
  ...
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <type>jar</type>
      <scope>test</scope>
      <optional>true</optional>
    </dependency>
    ...
  </dependencies>
  ...
</project>

4.exclusion配置
主要配置groupId和artifactId两个参数来排除某一个依赖包的自动导入。

<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
                      https://maven.apache.org/xsd/maven-4.0.0.xsd">
  ...
  <dependencies>
    <dependency>
      <groupId>org.apache.maven</groupId>
      <artifactId>maven-embedder</artifactId>
      <version>3.1.0</version>
      <exclusions>
        <exclusion>
          <groupId>*</groupId>
          <artifactId>*</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    ...
  </dependencies>
  ...
</project>

5.pom.xml文件继承
maven中可以支持pom文件的继承,具体如下
a. 父类pom.xml中的packaging值必须是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.0
                      https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
 
  <groupId
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值