本次主要介绍了如何在IntelliJ IDEA中正确配置pom.xml文件,通常至少要包含三个部分:项目坐标和模型版本、引入依赖的jar包、构建项目的配置。
关于Maven的安装和环境配置可以参考我之前的文章:Maven入门学习
模型版本和项目坐标
- 模型版本
modelVersion:pom文件的模型版本 - 项目坐标
指的是项目在maven资源库的坐标,通过groupId + artifactId + version进行表示。
- groupId:用于指定当前项目所属的组,格式一般是com.组织名.项目名,如图中的com.lousen.spark。
- artifactId:当前项目所属组的唯一的ID号,如图中的:maven-test
- version:用于指定当前项目的版本编号。比如:1.0-SNAPSHOT。后面的SNAPSHOT指正在开发中的项目。
引入依赖的jar包
-
引入依赖的jar包
- 配置依赖的JAR包信息,首先会从本地库查找是否有该JAR,如果没有,Maven会从远程仓库自动下载这个JAR到本地仓库,下载完后,就可以在项目中使用这个JAR了。
- 引入方法:在
<dependencies></dependencies>
标签中配置需要的JAR包的项目坐标信息
-
剔除想要排除的jar包
如果想要排除引入的JAR包,可以使用<exclusions> </exclusions>
在<dependencies></dependencies>
中添加
<exclusions>
<exclusion>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql</artifactId>
</exclusion>
</exclusions>
- 直接从Maven中心储存库获取依赖包
URL:mvn中心库- 搜索指定的依赖包
- 选择需要的版本
- 获取到该依赖包的配置信息
- 复制粘贴到pox.xml文件中
具体事例:
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
构建项目的配置
-
项目构建,进行打包,使用
<build></build>
标签进行配置 -
构建时,可以使用不同的插件,指定不同的功能,常用的功能由如下三种:
-
maven-assembly-plugin
设置打包信息,生成的jar包的名称是 a r t i f a c t I d − {artifactId}- artifactId−{version}-jar-with-dependencies.jar -
maven-compiler-plugin
设置java的版本号 -
maven-resources-plugin
设置项目的编码格式
-
-
具体配置
<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>