Maven-详解pom.xml内容及用法

本文详细探讨了Maven的pom.xml文件,包括模板引入、项目信息、多模块配置、依赖管理、自定义属性、构建过程、仓库设定、项目发布、报表生成、Profile工具的使用以及其他关键配置,旨在帮助读者理解并简化配置。
摘要由CSDN通过智能技术生成

最近使用SpringBoot,Maven也使用的越来越多,有这个时间刚好研究了下pom.xml文件的东西,真的是又多又杂。综合各位大神的解读,做了一些整理,剔除了一些不常用的,在需要的时候再去设置,尽量去繁就简,配置简单化。

模板引入

<?xml version="1.0" encoding="UTF-8"?>
<!-- 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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <!-- 模板版本 -->
    <modelVersion>4.0.0</modelVersion>
    ...
    ...
    ...
</project>

项目信息

<!-- 组织标识 -->
<groupId>anddd7.boot4ssh</groupId>

<!-- 项目名称 -->
<artifactId>SSM-SpringBoot-Starter</artifactId>

<!-- 版本号 -->
<version>1.0-SNAPSHOT</version>

<!--  打包的格式,可以为:pom , jar , maven-plugin , ejb , war , ear , rar , par -->
<packaging>pom</packaging>

<!--项目的名称, Maven产生的文档用-->
<name>SSM-SpringBoot-Starter</name>

<!--项目主页的URL, Maven产生的文档用-->
<url>http://www.baidu.com/banseon</url>

<!--项目的详细描述, Maven 产生的文档用。  当这个元素能够用HTML格式描述时(例如,CDATA中的文本会被解析器忽略,就可以包含HTML标签), 不鼓励使用纯文本描述。如果你需要修改产生的web站点的索引页面,你应该修改你自己的索引页文件,而不是调整这里的文档。-->
<description>A maven project to study maven.</description>

多模块关系

<!-- 继承关系 ,继承父pom的所有设置-->
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>RELEASE</version>

    <!--父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。-->
    <relativePath/>
</parent>

<!-- 聚合关系,描述子项目用于关联项目-->
<modules>
    <module>mybatis-springboot-sample</module>
    <module>demo-springboot-sample</module>
</modules>

依赖关联

<!-- 依赖描述-->
<dependencies>
    <dependency>

        <!-- 基本信息,表示取用某一版本的jar-->
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>1.4.4.RELEASE</version>

        <!--作用域,compile(default),provided,runtime,test,system-->
        <scope>compile</scope>

        <!--依赖类型,默认类型是jar。它通常表示依赖的文件的扩展名,但也有例外。一个类型可以被映射成另外一个扩展名或分类器。类型经常和使用的打包方式对应,尽管这也有例外。一些类型的例子:jar,war,ejb-client和test-jar。如果设置extensions为 true,就可以在plugin里定义新的类型。所以前面的类型的例子不完整。-->
        <type>jar</type>

        <!--依赖的分类器。分类器可以区分属于同一个POM,但不同构建方式的构件。分类器名被附加到文件名的版本号后面。例如,如果你想要构建两个单独的构件成JAR,一个使用Java 1.4编译器,另一个使用Java 6编译器,你就可以使用分类器来生成两个单独的JAR构件。-->
        <classifier></classifier>

        <!--仅供system范围使用。注意,不鼓励使用这个元素,并且在新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径而不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。-->
        <systemPath></systemPath>

        <!--当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的依赖。此元素主要用于解决版本冲突问题-->
        <exclusions>
            <exclusion>
                <artifactId>spring-core</artifactId>
                <groupId>org.springframework</groupId>
            </exclusion>
        </exclusions>

        <!--可选依赖,如果你在项目B中把C依赖声明为可选,你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖。可选依赖阻断依赖的传递性。-->
        <optional>true</optional>
    </dependency>
</dependencies>

<!--依赖版本约束,如果dependencies中没有指定jar版本,会按照dependencyManagement中的默认版本进行导入-->
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId/>
            <artifactId/>
            <version/>
        </dependency>
    </dependencies>
</dependencyManagement>

自定义属性值

<!--自定义属性管理-->
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
    <spring-boot.version>1.4.4.RELEASE</spring-boot.versi
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值