本次主要介绍了如何在IntelliJ IDEA中正确配置pom.xml文件,通常至少要包含三个部分:项目坐标和模型版本、引入依赖的jar包、构建项目的配置。
关于Maven的安装和环境配置可以参考我之前的文章:Maven入门学习

模型版本和项目坐标

项目坐标和模型版本

  1. 模型版本
    modelVersion:pom文件的模型版本
  2. 项目坐标
    指的是项目在maven资源库的坐标,通过groupId + artifactId + version进行表示。
  • groupId:用于指定当前项目所属的组,格式一般是com.组织名.项目名,如图中的com.lousen.spark
  • artifactId:当前项目所属组的唯一的ID号,如图中的:maven-test
  • version:用于指定当前项目的版本编号。比如:1.0-SNAPSHOT。后面的SNAPSHOT指正在开发中的项目。

引入依赖的jar包

  1. 引入依赖的jar包

    • 配置依赖的JAR包信息,首先会从本地库查找是否有该JAR,如果没有,Maven会从远程仓库自动下载这个JAR到本地仓库,下载完后,就可以在项目中使用这个JAR了。
    • 引入方法:在<dependencies></dependencies>标签中配置需要的JAR包的项目坐标信息
      Maven引入依赖的jar包
  2. 剔除想要排除的jar包
    如果想要排除引入的JAR包,可以使用<exclusions> </exclusions>
    <dependencies></dependencies>中添加

    1
    2
    3
    4
    5
    6
    <exclusions>
    <exclusion>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql</artifactId>
    </exclusion>
    </exclusions>
  3. 直接从Maven中心储存库获取依赖包
    URL:mvn中心库

    • 搜索指定的依赖包
    • 选择需要的版本
    • 获取到该依赖包的配置信息
    • 复制粘贴到pox.xml文件中
      具体事例:
      1
      2
      3
      4
      5
      6
      <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
      <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.11</version>
      </dependency>

构建项目的配置

  1. 项目构建,进行打包,使用<build></build>标签进行配置

  2. 构建时,可以使用不同的插件,指定不同的功能,常用的功能由如下三种:

    • maven-assembly-plugin
      设置打包信息,生成的jar包的名称是${artifactId}-${version}-jar-with-dependencies.jar

    • maven-compiler-plugin
      设置java的版本号

    • maven-resources-plugin
      设置项目的编码格式

  3. 具体配置

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    <build>
    <plugins>
    <!--插件1-->
    <!--打包配置的插件-->
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
    <!--官方提供的定制化打包方式,将所有依赖的jar包都添加到最终打的包里-->
    <descriptorRefs>
    <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    </configuration>
    <executions>
    <execution>
    <!--名字-->
    <id>make-my-jar-with-dependencies</id>
    <!--绑定到package生命周期阶段上-->
    <phase>package</phase>
    <!--只执行一次-->
    <goals>
    <goal>single</goal>
    </goals>
    </execution>
    </executions>
    </plugin>
    <!--插件2-->
    <!--设置java版本为1.8-->
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>2.3.2</version>
    <configuration>
    <source>1.8</source>
    <target>1.8</target>
    </configuration>
    </plugin>
    <!--插件3-->
    <!--设置编码为utf-8-->
    <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <version>2.4</version>
    <configuration>
    <encoding>UTF-8</encoding>
    </configuration>
    </plugin>
    </plugins>
    </build>

最后更新: 2020年07月27日 03:44

原始链接: https://www.lousenjay.top/2018/10/15/Maven的pom.xml配置详解/