Maven-POM.xml

本文介绍了Maven项目对象模型(POM)的基本概念,包括SuperPOM的默认配置、常用标签的解释及其作用,如modelVersion、groupId、artifactId等,还详细说明了parent标签和build标签的具体用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.Super POM
  • Super POM是 Maven 默认的 POM, 包含了一些可以被继承的默认设置
  • 所有的 POM 都继承自一个 super POM(无论是否显式定义了这个父super POM,类似于Java中的Object类)

使用以下命令来查看 Super POM 默认配置

mvn help:effective-pom

2.常用标签

  • <modelVersion> 模型版本

    <modelVersion>4.0.0</modelVersion>
    
  • <groupId> 公司或者组织的唯一标志,并且配置时生成的路径也是由此生成

    <groupId>com.companyname.project-group</groupId>
    
  • <artifactId> 项目的唯一ID,一个groupId下面可能多个项目,就是靠artifactId来区分的

    <artifactId>project</artifactId>
    
  • <version> 项目版本号

     <version>1.0</version><!--项目当前版本,格式为:主版本.次版本.增量版本-限定版本号-->
    
  • <parent> 父项目的坐标

    <parent>
        <!--被继承的父项目的构件标识符 -->
        <artifactId />
        <!--被继承的父项目的全球唯一标识符 -->
        <groupId />
        <!--被继承的父项目的版本 -->
        <version />
        <!-- 父项目的pom.xml文件的相对路径。相对路径允许你选择一个不同的路径。默认值是../pom.xml。Maven首先在构建当前项目的地方寻找父项目的pom,其次在文件系统的这个位置(relativePath位置),然后在本地仓库,最后在远程仓库寻找父项目的pom。-->
        <relativePath />
    </parent>
    
  • <packaging> 项目产生的构件类型,例如jar、war、ear、pom。插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型

    <packaging>pom</packaging>
    <!-- POM是最简单的打包类型。不像一个JAR,SAR,或者EAR,它生成的构件只是它本身。没有代码需要测试或者编译,也没有资源需要处理。打包类型为POM的项目的默认目标生命周期阶段-->
    <!-- pom 类型:一般作为父工程存在,父工程主要是进行统一的版本申明,并不定义具体的依赖关系,常见于多模块或者说聚合工程中使用。-->
    
  • <build> 构建项目需要的信息

    <directory></directory> <!--指定属性文件的目录,build的过程需要找到它,并且将其放到targetPath下,默认的directory是${basedir}/src/main/resources-->
    <sourceDirectory /> <!--该元素设置了项目源码目录,当构建项目的时候,构建系统会编译目录里的源码。该路径是相对于pom.xml的相对路径-->
    
     <!--使用来自该项目的一系列构建扩展 -->
    <extensions>
        <!--描述使用到的构建扩展。 -->
        <extension>
            <!--构建扩展的groupId -->
            <groupId />
            <!--构建扩展的artifactId -->
            <artifactId />
            <!--构建扩展的版本 -->
            <version />
        </extension>
    </extensions>
    
    
  • <resources>

    构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。

    自定义的目录,如果没有配置resources可能导致maven在打包的时候该目录下的一些文件不会打包进去。

    <resources>
        <!--这个元素描述了项目相关或测试相关的所有资源路径 -->
        <resource>
            <!-- 描述了资源的目标路径。该路径相对target/classes目录(例如${project.build.outputDirectory})。举个例子,如果你想资源在特定的包里(org.apache.maven.messages),你就必须该元素设置为org/apache/maven /messages。然而,如果你只是想把资源放到源码目录结构里,就不需要该配置。 -->
            <targetPath />
            <!--是否使用参数值代替参数名。参数值取自properties元素或者文件里配置的属性,文件在filters元素里列出。 -->
            <filtering />
            <!--描述存放资源的目录,该路径相对POM路径 -->
            <directory />
            <!--包含的模式列表,例如**/*.xml. -->
            <includes />
            <!--排除的模式列表,例如**/*.xml -->
            <excludes />
        </resource>
    </resources>
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值