首页 > 其他分享 >pom.xml详解

pom.xml详解

时间:2024-02-27 11:11:44浏览次数:26  
标签:xml version spring boot wsm pom cloud com 详解

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">
  • project 元素是 pom.xml 文件的根元素,包含整个 Maven 项目的配置信息。
  • xmlns 命名空间用于指定 XML 文件的命名空间。
  • xsi:schemaLocation 指定 XML 文件的 XSD(XML Schema Definition)文件的位置,用于验证 XML 文件的结构。
    <modelVersion>4.0.0</modelVersion>
  • modelVersion 指定了 Maven 的 POM 模型版本,当前版本是 4.0.0。
    <groupId>com.example</groupId>
    <artifactId>example-project</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>
  • groupId 定义了项目所属的组织或者包名。
  • artifactId 定义了项目的唯一标识符。
  • version 定义了项目的版本号。
  • packaging 定义了项目的打包方式,如 jarwar 等。
    <dependencies>
        <!-- 项目依赖配置 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.6.2</version>
        </dependency>
        <!-- 其他依赖项 -->
    </dependencies>
  • dependencies 元素定义了项目的依赖配置,包含一组 dependency 元素。
  • 每个 dependency 元素描述一个依赖项,包括 groupIdartifactIdversion 等。
    <build>
        <plugins>
            <!-- 构建插件配置 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.6.2</version>
            </plugin>
            <!-- 其他构建插件配置 -->
        </plugins>
    </build>
  • build 元素定义了项目的构建配置,包含一组 plugin 元素。
  • 每个 plugin 元素描述一个构建插件,包括 groupIdartifactIdversion 等。

父项目

<?xml version="1.0" encoding="UTF-8"?>
<!-- Maven项目的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">
    <!-- Maven模型版本 -->
    <modelVersion>4.0.0</modelVersion>

    <!-- 子项目模块列表 -->
    <modules>
        <module>wsm-patient</module>
        <module>wsm-common</module>
        <module>wsm-setl</module>
        <module>wsm-gateway</module>
        <module>wsm-auth</module>
    </modules>

    <!-- 项目信息 -->
    <groupId>com.wsm</groupId>
    <artifactId>HBS4</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>HBS4</name>
    <packaging>pom</packaging>
    <description>HBS4</description>

    <!-- 属性配置 -->
    <properties>
        <java.version>17</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <spring.cloud.version>2021.0.5</spring.cloud.version>
        <spring.cloud.alibaba.version>2021.0.5.0</spring.cloud.alibaba.version>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <spring-boot.version>2.6.13</spring-boot.version>
        <mybatis.plus.version>3.5.5</mybatis.plus.version>
        <knife4j.version>4.4.0</knife4j.version>
        <fastjson.version>2.0.46</fastjson.version>
        <lombok.version>1.18.30</lombok.version>
        <swagger.version>3.0.0</swagger.version>
        <hutool.version>5.8.26</hutool.version>
    </properties>

    <!-- 依赖管理 -->
    <dependencyManagement>
        <dependencies>
            <!-- Spring Cloud依赖 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- Hutool依赖 -->
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-bom</artifactId>
                <version>${hutool.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- Spring Cloud Alibaba依赖 -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba</artifactId>
                <version>${spring.cloud.alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring.cloud.alibaba.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- Spring Boot依赖 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter</artifactId>
                <version>${spring-boot.version}</version>
            </dependency>
            <!-- MyBatis Plus依赖 -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis.plus.version}</version>
            </dependency>
            <!-- Knife4依赖 -->
            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-openapi3-spring-boot-starter</artifactId>
                <version>${knife4j.version}</version>
            </dependency>
            <!-- Swagger2依赖 -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <!-- Lombok依赖 -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
            </dependency>
            <!-- Fastjson依赖 -->
            <dependency>
                <groupId>com.alibaba.fastjson2</groupId>
                <artifactId>fastjson2</artifactId>
                <version>${fastjson.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- 构建配置 -->
    <build>
        <plugins>
            <!-- Maven Compiler Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!-- Spring Boot Maven Plugin -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>com.example.hbs4.Hbs4Application</mainClass>
                    <skip>true</skip>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

子项目

<?xml version="1.0" encoding="UTF-8"?>
<!-- Maven项目的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">
    <!-- Maven模型版本 -->
    <modelVersion>4.0.0</modelVersion>
    <!-- 父项目 -->
    <parent>
        <groupId>com.wsm</groupId>
        <artifactId>HBS4</artifactId>
        <version>0.0.1-SNAPSHOT</version>
    </parent>
    <!-- 项目信息 -->
    <groupId>com.wsm</groupId>
    <artifactId>wsm-setl</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>wsm-setl</name>
    <description>wsm-setl</description>
    <!-- 属性配置 -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>
    <!-- 依赖配置 -->
    <dependencies>
        <!-- Spring Boot Web Starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!-- Spring Boot Test Starter -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- wsm-common -->
        <dependency>
            <groupId>com.wsm</groupId>
            <artifactId>wsm-common</artifactId>
            <version>0.0.1-SNAPSHOT</version>
        </dependency>
        <!-- Nacos Discovery -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- Sentinel -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!-- OpenFeign -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>
        <!-- MyBatis Plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
        </dependency>
        <!-- Lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!-- MySQL Connector -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <!-- Swagger2 -->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
        </dependency>
    </dependencies>
    <!-- 依赖管理 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <!-- 构建配置 -->
    <build>
        <plugins>
            <!-- Maven Compiler Plugin -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
            <!-- Spring Boot Maven Plugin -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>${spring-boot.version}</version>
                <configuration>
                    <mainClass>com.wsm.wsmsetl.WsmSetlApplication</mainClass>
                    <skip>true</skip>
                </configuration>
                <executions>
                    <execution>
                        <id>repackage</id>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

标签:xml,version,spring,boot,wsm,pom,cloud,com,详解
From: https://www.cnblogs.com/mozziemy/p/18036467

相关文章

  • [转载]详解Mysql innoDB意向锁的作用
    前言InnoDB支持多粒度锁(multiplegranularitylocking),它允许行级锁与表级锁共存,而意向锁就是其中的一种表锁。意向锁(IntentionLocks)需要强调一下,意向锁是一种不与行级锁冲突表级锁,这一点非常重要。意向锁分为两种:意向共享锁(intentionsharedlock,IS):事务有意向对表中的某......
  • 多线程系列(十) -ReadWriteLock用法详解
    一、摘要在上篇文章中,我们讲到ReentrantLock可以保证了只有一个线程能执行加锁的代码。但是有些时候,这种保护显的有点过头,比如下面这个方法,它仅仅就是只读取数据,不修改数据,它实际上允许多个线程同时调用的。publicclassCounter{privatefinalLocklock=newReentra......
  • 机器学习策略篇:详解单一数字评估指标(Single number evaluation metric)
    单一数字评估指标无论是调整超参数,或者是尝试不同的学习算法,或者在搭建机器学习系统时尝试不同手段,会发现,如果有一个单实数评估指标,进展会快得多,它可以快速告诉,新尝试的手段比之前的手段好还是差。所以当团队开始进行机器学习项目时,经常推荐他们为问题设置一个单实数评估指标。......
  • 【性能测试】Redis中的缓存雪崩、缓存击穿、缓存穿透问题详解
    一.什么是缓存雪崩当我们提到缓存系统中的问题,缓存雪崩是一个经常被讨论的话题。缓存雪崩是指在某一时刻发生大量的缓存失效,导致瞬间大量的请求直接打到了数据库,可能会导致数据库瞬间压力过大甚至宕机。尤其在高并发的系统中,这种情况会导致连锁反应,整个系统可能会崩溃。1.......
  • 核心子方法2: obtainFreshBeanFactory()方法详解
    先总结: 该方法new了一个beanFactory, 设置了一些忽略的接口, 加载并解析了bean.xml, 主要将bean信息解析为BeanDefinition保存到beanFactory中1.refreshBeanFactory()方法 1.1创建DefaultListableBeanFactory对象: createBeanFactory()->newDefaultListableBeanF......
  • [DotnetSec]XmlSerializer 反序列化 分析
    Dotnet-XmlSerializer反序列化序列化和反序列化的演示Demo参考微软的文档:https://learn.microsoft.com/zh-cn/dotnet/api/system.xml.serialization.xmlserializer?view=net-5.0XmlSerializer命名空间:System.Xml.Serialization程序集:System.Xml.XmlSerializer.dll演示......
  • 详解SSL证书系列(1)什么是SSL证书?
    你一定遇到过这种情况,打开一个网站,浏览器弹出警告”您与此网站之间建立的连接不安全。由于此连接不安全,因此信息(如密码或信用卡)不会安全地发送到此网站,并且可能被其他人截获或看到”。细心的你也一定关注到,有的网址是https开头的,有的是http。https开头的网站前面,会有一把小锁。......
  • JavaScript中的包装类型详解
    JavaScript中的包装类型详解在JavaScript中,我们有基本类型和对象类型两种数据类型。基本类型包括String,Number,Boolean,null,undefined和Symbol。然而,当我们需要在这些基本类型上调用方法时,就需要用到JavaScript的包装类型。什么是包装类型?包装类型是JavaScript中的......
  • BFC详解
    1.问题1.1BFC作用一:可以取消盒子margin塌陷计算BFC的高度时,考虑BFC所包含的所有元素,连浮动元素也参与计算1.2BFC作用二:可以阻止该元素被浮动元素覆盖浮动盒区域不叠加到BFC上!!!这是BFC的独立性主要应用于一行中同时存在浮动元素和行内元素,防止行内元素被覆盖(不常用,一般一行均......
  • 多线程系列(九) -ReentrantLock常用方法详解
    一、简介在上一篇文章中,我们介绍了ReentrantLock类的一些基本用法,今天我们重点来介绍一下ReentrantLock其它的常用方法,以便对ReentrantLock类的使用有更深入的理解。二、常用方法介绍2.1、构造方法ReentrantLock类有两个构造方法,核心源码内容如下:/***默认创建非公平锁*/......