【maven】pom.xml 文件详解

有关 maven 其他配置讲解参考
maven 配置文件 setting.xml 详解
pom.xml 文件是 Maven 项目的核心配置文件,其中包含了项目的元数据构建配置依赖管理等信息。以下是一个 pom.xml 文件的主要部分:


<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.0modelVersion>
    <groupId>com.examplegroupId>
    <artifactId>my-projectartifactId>
    <version>1.0.0version>
    
    
    <dependencies>
        <dependency>
            <groupId>org.springframeworkgroupId>
            <artifactId>spring-coreartifactId>
            <version>5.3.8.RELEASEversion>
        dependency>
        
    dependencies>
    
    
    <build>
        
    build>
    
    
project>

1、 元素: 顶层元素,定义整个 Maven 项目。

元素: Maven 模型的版本号,当前版本为 4.0.0。

元素: 项目组标识符,通常采用反转的域名风格。

元素: 项目的唯一标识符。

元素: 项目的版本号。

元素用于指定 Maven 项目的打包方式,即最终产物的类型。该元素位于 pom.xml 文件的 元素下。以下是 元素的常见取值:

  • jar(默认值): 生成 JAR 文件。

    <packaging>jarpackaging>
    
  • war: 生成 WAR 文件,用于部署到 Java Web 容器(如 Tomcat)。

    <packaging>warpackaging>
    
  • pom: 用于聚合其他 Maven 项目,不生成实际的构建产物。 POM 项目可以用于聚合多个子项目,将它们组织成一个逻辑单元。父项目的 POM 文件中可以包含一些通用的配置信息,例如依赖管理、插件配置等,这样子项目可以继承这些配置,减少重复的配置工作。使用 POM 项目作为父项目进行项目聚合在微服务系统中是一种常见的做法

    <project>
        <modelVersion>4.0.0modelVersion>
        <groupId>com.examplegroupId>
        <artifactId>my-parentartifactId>
        <version>1.0.0version>
        <packaging>pompackaging> 
    
        
        <modules>
            <module>module1module>
            <module>module2module>
            
        modules>
    
        
    project>
    
  • ear: 生成 Enterprise Archive(EAR)文件,用于部署到 Java EE 应用服务器。

    <packaging>earpackaging>
    
  • maven-plugin: 用于构建 Maven 插件。

    <packaging>maven-pluginpackaging>
    
  • bundle: 用于构建 OSGi bundle。

    <packaging>bundlepackaging>
    
  • 其他自定义类型: Maven 允许用户定义自己的打包类型,例如一些特定的构建工具或应用程序类型。

    <project>
        
    
        <modelVersion>4.0.0modelVersion>
        <groupId>com.examplegroupId>
        <artifactId>my-projectartifactId>
        <version>1.0.0version>
    
        
        <packaging>jarpackaging>
    
        
    
    project>
    

    通过设置 元素,可以指定 Maven 构建工具在执行 mvn package 等构建命令时生成特定类型的构建产物。不同的打包方式会影响最终生成的文件类型和结构。

2、 元素是 Maven POM 文件中用于定义项目属性的部分。

中,你可以定义一些变量,然后在 POM 文件的其他地方引用这些变量,以便在整个项目中统一管理一些配置信息。以下是一个简单的示例,展示了如何在 中定义属性:

<project>
    

    <properties>
        <java.version>1.8java.version>
        <maven.compiler.source>${java.version}maven.compiler.source>
        <maven.compiler.target>${java.version}maven.compiler.target>
        <project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
        

    properties>

    

project>

3、 元素: 定义项目的依赖关系。

元素: 声明一个依赖,包含 等元素。
元素是 Maven POM 文件中的一个重要部分,用于集中管理项目中所有模块的依赖版本信息。通过配置 包住的,可以确保项目中的所有模块都使用相同版本的依赖,从而减少版本冲突的可能性。子项目可以通过继承父项目的 部分,自己的 pom 文件依赖版本号可以省略,从而使用父项目中定义的依赖版本。

4、 元素: 定义项目的构建配置。

元素: 插件配置,例如 Maven Compiler 插件、Maven Surefire 插件等。

5、 用于配置 Maven 构建输出的分发管理信息

它主要用于指定 Maven 构建结果的发布位置,包括发布到 Maven 仓库、远程仓库、FTP 服务器等。
以下是 的一个简单示例:

<project>
    

    <distributionManagement>
        <repository>
            <id>my-repoid>
            <url>https://example.com/maven-repourl>
        repository>
        <snapshotRepository>
            <id>my-snapshot-repoid>
            <url>https://example.com/maven-snapshot-repourl>
        snapshotRepository>
    distributionManagement>

    

project>

在上述示例中, 配置了两个部分:

:用于发布正式版本(Release)。指定了 Maven 正式版本构建结果的发布位置,包括 id(标识符)和 url(发布的 URL)。正式版本和快照版本参考【maven】正式版本和快照版本详解

:用于发布快照版本(Snapshot)。类似于 ,但用于发布 Maven 快照版本。

这样配置后,当运行 mvn deploy 命令时,Maven 将会把构建结果发布到指定的仓库中。在实际项目中,根据实际需要,可以根据 配置发布到不同的 Maven 仓库或其他存储位置。通常情况下我们的版本号带有后缀-SNAPSHOT ,发布的就是快照版本。在 pom.xml 文件中将项目的版本号修改为正式版本号,去掉 -SNAPSHOT 后缀, 接着遵循正式发布版本操作打标签等,再发布就是正式版本。

需要注意的是, 中的配置通常与 Maven 仓库管理工具(如 Nexus、Artifactory)等结合使用,以实现更灵活的构建发布管理。

6、其他配置: 还可以包含其他配置元素,

例如 (定义项目使用的远程仓库)、(定义属性)、(定义不同环境的配置)等。和setting.xml 相似,具体可参考【maven】setting.xml文件详解。

你可能感兴趣的:(java开发,maven,xml,java)