【sping +maven 】pom文件plugin介绍
获取插件信息
比如查看插件目标有哪些参数可以使用、使用方式、示例、常见问题等:
网址:http://maven.apache.org/plugins/index.html
下载地址:http://repo1.maven.org/maven2/org/apache/maven/plugins/
先将我用到的自定义变量贴过来,防止插件中出现一些变量,大家不理解
Java代码
<!-- 全局属性配置 -->
<properties>
<project.build.name>tools</project.build.name>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
project.build.name: 用来定义war包名称
project.build.sourceEncoding: 用来定义资源文件的编码格式
下面开始讲解常用的maven插件配置
一、编译插件
Java代码
<!-- 编译插件 -->
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin>
source: 源代码编译版本;
target: 目标平台编译版本;
encoding: 字符集编码。
二、设置资源文件的编码方式
Java代码
<!-- 设置资源文件的编码方式 -->
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>2.4.3</version> <executions> <execution> <phase>compile</phase> </execution> </executions> <configuration> <encoding>${project.build.sourceEncoding}</encoding> </configuration> </plugin>
<!-- 将配置文件复制到target目录的config目录底下 -->
<plugin> <artifactId>maven-resources-plugin</artifactId> <executions> <execution> <!-- 复制配置文件 --> <id>copy-resources</id> <phase>package</phase> <goals> <goal>copy-resources</goal> </goals> <configuration> <resources> <resource> <directory>src/main/resources</directory> <includes> <include>application.yml</include> <!--<include>*.txt</include>--> <include>logback*/**</include> </includes> </resource> </resources> <outputDirectory>${project.build.directory}/config</outputDirectory> </configuration> </execution> </executions> </plugin>
xml、properties文件都是资源文件,编码的时候遇到中文总要进行转码!用什么编码?UTF-8,那就记得强制<encoding>${project.build.sourceEncoding}</encoding>
三、自动拷贝jar包到target目录
Java代码
<!-- 依赖插件 -->
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <version>2.6</version> <executions> <execution> <id>copy-dependencies</id> <phase>compile</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <!-- ${project.build.directory}为Maven内置变量,缺省为target --> <outputDirectory>${project.build.directory}/lib</outputDirectory> <!-- 表示是否不包含间接依赖的包 --> <excludeTransitive>false</excludeTransitive> <!-- 表示复制的jar文件去掉版本信息 --> <stripVersion>true</stripVersion> </configuration> </execution> </executions> </plugin>
<!-- 将包打包到target目录的lib目录底下,不打在jar包内 -->
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-dependency-plugin</artifactId> <executions> <execution> <id>copy</id> <phase>package</phase> <goals> <goal>copy-dependencies</goal> </goals> <configuration> <outputDirectory>${project.build.directory}/lib</outputDirectory> </configuration> </execution> </executions> </plugin>
在部署war包时,需要将项目依赖的jar包,也打到war包中,因此就会用到上述插件
四、生成源代码jar包
Java代码
<!-- 源代码打包插件 --> <plugin> <artifactId>maven-source-plugin</artifactId> <version>2.1</version> <configuration> <!-- <finalName>${project.build.name}</finalName> --> <attach>true</attach> <encoding>${project.build.sourceEncoding}</encoding> </configuration> <executions> <execution> <phase>compile</phase> <goals> <goal>jar</goal> </goals> </execution> </executions> </plugin>
该插件主要用于在打jar包时,把源代码也打成jar包
五、将项目打成jar包
Java代码
<!-- jar包插件 -->
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.4</version> <configuration> <archive> <manifest> <!-- 告知 maven-jar-plugin添加一个 Class-Path元素到 MANIFEST.MF文件,以及在Class-Path元素中包括所有依赖项 --> <addClasspath>true</addClasspath> <!-- 所有的依赖项应该位于 lib文件夹 --> <classpathPrefix>lib/</classpathPrefix> <!-- 当用户使用 lib命令执行JAR文件时,使用该元素定义将要执行的类名 --> <mainClass>com.zhengtian.tools.service.phone.MobilePhoneTool</mainClass> </manifest> </archive> </configuration> </plugin>
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <archive> <!-- 添加index则不从mainfest中读取classpath,而是从Index.list中读取 --> <!-- <index>true</index> --> <manifest> <!-- 当用户使用 lib命令执行JAR文件时,使用该元素定义将要执行的类名 --> <mainClass>com.whalecloud.uip.datasource.WhaleUipDatasourceApplication</mainClass> <!-- 告知 maven-jar-plugin添加一个 Class-Path元素到 MANIFEST.MF文件,以及在Class-Path元素中包括所有依赖项 --> <addClasspath>true</addClasspath> <!-- 所有的依赖项应该位于 lib文件夹 --> <classpathPrefix>lib/</classpathPrefix> </manifest> <manifestEntries> <Class-Path>./</Class-Path> </manifestEntries> </archive> <excludes> <exclude>*.yml</exclude> </excludes> </configuration> </plugin>
原文链接:https://blog.csdn.net/qq_23167527/article/details/67635610