一、pom文件介绍说明

1、下面是我做毕业设计时候的pom文件说明,可能部分说明不全,会在二级标题中,把需要特殊说明的,单独拎出来。

<?xml version="1.0" encoding="UTF-8"?>
<!--project是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">

    <!--描述pom文件遵循从哪个版本的项目描述符  modelVersion 标签:从Maven 2 开始就固定为4.0.0-->
     <!--代表当前pom.xml 所采用对标签结构-->
    <modelVersion>4.0.0</modelVersion>

     
     坐标信息   范围从大到小    groupId > artifactId > version
    <!--描述项目组织的唯一标识,也就是项目是哪个公司或者组织开发的,通常使用域名或组织名称-->
    <groupId>com.ligong</groupId>
    <!--项目唯一标识,通常使用项目或模块名     如果一个项目中有多个工程,在代表项目下面对一个模块-->
    <artifactId>have_take_out</artifactId>
    <!--项目版本号-->    
    <version>1.0-SNAPSHOT</version>
    <!--项目打包类型,默认值是jar,说明这是一个java工程, 
    还可以是war,说明是一个web工程、
    pom :是欧盟这个工程是用来管理其他工程的工程。-->
    <packaging>jar</packaging>


    <!--引入起步依赖-->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.5</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
     在Maven 中定义属性值
    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <!--引入Jar依赖列表 dependencies标签:配置具体依赖信息,可以包含多个dependency 子标签-->
    <dependencies>
        <!--配置一个具体的依赖信息-->
         <dependency>
         坐标信息:导入那个jar包,就引入什么坐标
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <!--如果不设置scope标签,m默认值就是compile
               test 当前依赖仅参与项目的单元测试
               runtime 当前依赖仅参与项目的运行阶段
               provided 与compile 类似,区别在与不会参与项目的最终打包
               system 从本地磁盘中引用一个jar包
            -->
            <!--如果作用于是system,那么还需要额外加入一个标签,如下-->
            <scope>compile</scope>
            <systemPath>jar包所在路径</systemPath>
        </dependency>
   
    </dependencies>

   

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.4.5</version>
            </plugin>
        </plugins>
    </build>

</project>

2、properties标签

在这里插入图片描述

3、licenses配置开源许可证,了解

在这里插入图片描述

4、developers开发者信息

在这里插入图片描述

5、scm项目版本控制工具

在这里插入图片描述

6、bulid表示对项目的一些编译配置

在这里插入图片描述

7、plugins 插件配置

例如编译插件;
在这里插入图片描述

8、parent继承父类模块

在这里插入图片描述

9、modules标识子模块列表

二、依赖Jar包冲突原理,以及解决方案

举个例子,当我们的Web项目需要分别引入A架包与B架包;

但是A架包 和B架包 因为依赖的传递性,分别 引入了 C架包的
1.0版本和C架包的2.0版本,但是类加载器在执行的过程中只加载了1.0版本的架包,但是我们在编程或者写代码的时候,却调用了C架包中2.0版本中的多出的方法或者类,那么这个时候就可能会出现找不到方法或者,没有发现类的情况。
在这里插入图片描述

在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐