pom.xml文件标签说明

发布时间 2023-11-25 11:19:31作者: 吃不胖的帅哥

1、modelVersion:指定当前maven模型的版本号,pom必须遵守一个模型。4.0.0是对于maven2、maven3来说设置4.0.0,因为在maven2,maven3中目前只有这一个模型。

<!-- 指定当前maven模型的版本号-->
<modelVersion>4.0.0</modelVersion>

2、groupId:此标签是项目组织唯一的标识符,定义了项目属于哪个组。一般写法为 域名.公司名,实际对应JAVA的包的结构,是main目录里java的目录结构。

<groupId>com.wgd</groupId>

3、artifactId:此标签是是项目的唯一的标识符,定义了当前maven项目在组中唯一的ID,实际对应的是项目名,就是项目根目录的名称。

<artifactId>springboot</artifactId>

4、version:指定了项目的当前版本,如果后面跟的有SNAPSHOT意为快照, 说明该项目还处于开发中,是不稳定的版本。

<version>1.0.0</version>

5、name:声明了一个对于用户来说更为友好的项目名称,不是必须的。

<name>wgd</name>

6、description:是关于这个项目的描述。

<description>XXXX系统</description>

7、properties:属性配置,集中管理jar包版本,进行自定义标签。

<properties>
    <java.version>1.8</java.version>
</properties>

8、dependencyManagement:只声明依赖,但是不会自动引入,因此子项目需要显示声明依赖。在子项目中声名了依赖项,且没有指定版本,就会从父项目中继承该依赖,且版本都是读取的父项目的。如果子项目指定版本号会使用子项目指定的版本(常用于有子模块的项目中)。

<dependencyManagement>
    。。。
</dependencyManagement>

9、dependencies:所有声明在dependencies里的依赖都会自动引入,并默认被所有的子项目继承。

<dependencies></dependencies>

10、dependency:每个此标签对应一个引用的jar包。

<dependency>
    <!-- 此依赖包的公司或组织名称-->
    <groupId>org.springframework.boot</groupId> 
    <!--此依赖包的名称或标识-->
    <artifactId>spring-boot-dependencies</artifactId> 
    <!--此依赖包的版本号-->
    <version>${springboot.version}</version> 
    <!--此依赖包的类型,默认为jar-->
    <type>pom</type> 
    <!--此依赖包的使用范围,默认为compile,表示为当前依赖参与项目的编译、测试和运行阶段,属于强依赖,打包之时会打到包里去。-->
    <!--import 这个是maven2.0.9版本后出的属性,import只能在dependencyManagement中使用,能解决maven依赖单继承问题,import依赖关系实际上并不参与限制依赖关系的传递性。-->
    <scope>import</scope> 
</dependency>

11、modules:配置子模块

<modules>
    <!--子模块的名称-->
    <module>spring_boot_admin</module> 
</modules>

12、repositories:用来配置maven项目的远程仓库,他的下面可以添加多个,每一个都有它唯一的ID,一个描述性的name,以及最重要的远程仓库地址。如下:

<!-- repositories:远程仓库,用于配置当前项目下载依赖的Maven远程仓库地址,希望在当前项目中使用独立的Maven远程仓库,只对当前Maven项目有效。 -->
<repositories> 
    <repository>
        <id>public</id>
        <name>aliyun nexus</name>
        <url>https://maven.aliyun.com/repository/public</url>
        <!-- 告诉Maven可以从这个仓库下载releases版本的构件 -->
        <releases>
            <enabled>true</enabled>
        </releases>
       <!-- 告诉Maven不要从这个仓库下载snapshot版本的构件,禁止从公共仓库下载snapshot构件是推荐的做法,因为这些构件不稳定,且不受你控制,你应该避免使用。当然,如果你想使用局域网内组织内部的仓库,你可以激活snapshot的支持 -->
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>

13、pluginRepositories:插件仓库,用于配置当前项目所用插件的远程仓库地址,针对的是maven命令需要的插件(比如clean、install)。

<!-- pluginRepositories:插件仓库,用于配置当前项目所用插件的远程仓库地址,针对的是maven命令需要的插件(比如clean、install)-->
<pluginRepositories>
    <pluginRepository>
        <id>public</id>
        <name>aliyun nexus</name>
        <url>https://maven.aliyun.com/repository/public</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </pluginRepository>
</pluginRepositories>

14、build配置

<build>
  <plugins>
      <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
               <source>${maven.compiler.source}</source>
               <target>${maven.compiler.target}</target>
               <encoding>${project.build.sourceEncoding}</encoding>
          </configuration>
      </plugin>
  </plugins>
  <pluginManagement>
      <plugins>
          <plugin>
               <groupId>org.springframework.boot</groupId>
               <artifactId>spring-boot-maven-plugin</artifactId>
               <version>${spring-boot.version}</version>
              <executions>
                  <execution>
                      <goals>
  <!-- 在原始Maven打包形成的jar包基础上,进行重新打包,新形成的jar包不但包含应用类文件和配置文件,而且还会包含应用所依赖的jar包以及Springboot启动相关类(loader等),防止有些文件打包不进去。-->
  <goal>repackage</goal>
                      </goals>
                  </execution>
              </executions>
          </plugin>
      </plugins>
  </pluginManagement>
</build>