pom文件详解

本文详细介绍了 Maven 项目的目录结构,强调了 POM 文件作为 Maven 配置的核心地位。POM 文件位于项目根目录下,遵循 Maven 的约定。根元素 `project` 包含 `modelVersion`、`groupId`、`artifactId`、`version` 和 `packaging` 等关键配置。这些元素共同定义了项目的唯一标识,确保在 Maven 仓库中的唯一性。

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

转自: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等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值