在Maven中,构建插件(Build Plugins)是用来处理项目的各种构建过程的工具,比如编译源代码、运行测试、生成报告、打包应用等。这些插件的配置通常放在pom.xml文件的<build>标签下的<plugins>子标签中。
以下是一些常见构建插件的配置示例:
1、Maven Compiler Plugin:用于编译Java源代码
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version> <!-- 使用时请检查最新版本 -->
<configuration>
<source>1.8</source> <!-- 源代码版本 -->
<target>1.8</target> <!-- 目标字节码版本 -->
<encoding>UTF-8</encoding> <!-- 字符编码 -->
</configuration>
</plugin>
</plugins>
</build>
2、Maven Surefire Plugin:用于运行JUnit测试
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M5</version> <!-- 使用时请检查最新版本 -->
<configuration>
<includes>
<include>**/*Test.java</include> <!-- 包含以Test结尾的测试类 -->
</includes>
<excludes>
<exclude>**/Abstract*.java</exclude> <!-- 排除以Abstract开头的类 -->
</excludes>
</configuration>
</plugin>
</plugins>
</build>
3、Maven Jar Plugin:用于打包JAR文件(如果项目的<packaging>标签是jar,则这个插件是默认的)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version> <!-- 使用时请检查最新版本 -->
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.example.MainClass</mainClass> <!-- 主类 -->
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
4、Maven War Plugin:用于打包WAR文件(如果项目的<packaging>标签是war,则这个插件是默认的)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.1</version> <!-- 使用时请检查最新版本 -->
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml> <!-- 如果没有web.xml文件,是否失败 -->
<warSourceDirectory>src/main/webapp</warSourceDirectory> <!-- web应用目录 -->
</configuration>
</plugin>
</plugins>
</build>
5、Maven Source Plugin:用于生成源代码JAR包
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>3.2.0</version> <!-- 使用时请检查最新版本 -->
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>