Maven的常用插件
Clean
-
Apache Maven Clean Plugin
清理编译期在如下目录内生成的文件。project.build.directory
project.build.outputDirectory
project.build.testOutputDirectory
project.reporting.outputDirectory
-
Usage
在命令行中执行如下命令:mvn clean:clean
或者
mvn clean
修改
pom.xml
,增加如下配置:<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>3.4.0</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <executions> <execution> <id>auto-clean</id> <phase>initialize</phase> <goals> <goal>clean</goal> </goals> </execution> </executions> </plugin> ... </plugins> </build> ... </project>
Compiler
-
Apache Maven Compiler Plugin
对于Java项目来说,源码的默认路径为src/main/java
,测试代码的默认路径为src/test/java
。 -
Usage
在命令行中执行如下命令:mvn compile
或者
mvn test-compile
修改
pom.xml
,增加如下配置:<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.13.0</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> ... </plugins> </build> ... </project>
-
Setting the -source and -target of the Java Compiler
修改pom.xml
,增加如下配置:<project> [...] <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> [...] </project>
-
Setting the --release of the Java Compiler
使用Java 9及以后的版本编译、构建时,可以指定编译的版本号。
修改pom.xml
,增加如下配置:<project> [...] <properties> <maven.compiler.release>8</maven.compiler.release> </properties> [...] </project>
-
Compile Using Memory Allocation Enhancements
修改pom.xml
,增加如下配置,即使用单独的javac进程,初始内存指定为128MiB
,最大内存指定为512MiB
。<project> [...] <build> [...] <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <fork>true</fork> <meminitial>128m</meminitial> <maxmem>512m</maxmem> </configuration> </plugin> </plugins> [...] </build> [...] </project>
-
Pass Compiler Arguments
修改pom.xml
,增加如下配置:<project> [...] <build> [...] <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <compilerArgs> <arg>-verbose</arg> <arg>-Xlint:all,-options,-path</arg> </compilerArgs> </configuration> </plugin> </plugins> [...] </build> [...] </project>
相关参数,可以参考javac。
JAR
- Apache Maven JAR Plugin
构建jar文件。 - Plugin Documentation
- Usage
修改pom.xml
,增加如下配置:<project> ... <modelVersion>4.0.0</modelVersion> <groupId>net.jackieathome.studio</groupId> <artifactId>core</artifactId> <version>1.0-SNAPSHOT</version> <!-- <packaging>jar</packaging> --> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>3.4.2</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> </plugin> ... </plugins> </build> ... </project>
WAR
- Apache Maven WAR Plugin
构建war文件。 - Plugin Documentation
- Usage
修改pom.xml
,增加如下配置:<project> ... <modelVersion>4.0.0</modelVersion> <groupId>net.jackieathome.studio</groupId> <artifactId>core</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>3.4.0</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> </plugin> ... </plugins> </build> ... </project>
Shade
- Apache Maven Shade Plugin
构建uber jar文件。 - Plugin Documentation
- Usage
修改pom.xml
,增加如下配置:<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>3.6.0</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> </execution> </executions> </plugin> ... </plugins> </build> ... </project>
Assembly
- Apache Maven Assembly Plugin
- Plugin Documentation
- Usage
修改pom.xml
,增加如下配置:<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <version>3.7.1</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> ... </plugins> </build> ... </project>
Deploy
-
Usage
修改pom.xml
,增加如下配置:<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>3.1.3</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> </plugin> ... </plugins> </build> ... </project>
Install
-
Usage
修改pom.xml
,增加如下配置:<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <version>3.1.3</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> </plugin> ... </plugins> </build> ... </project>
Resources
-
Apache Maven Resources Plugin
源码资源的默认路径为src/main/resources
,测试代码的资源的默认路径为src/test/resources
。 -
Usage
修改pom.xml
,增加如下配置:<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.3.1</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> </plugin> ... </plugins> </build> ... </project>
-
Specifying a character encoding scheme
修改
pom.xml
,增加如下配置:<project ...> ... <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> ... </properties> .. </project>
Surefire
- Maven Surefire Plugin
执行单元测试代码。 - Plugin Documentation
- Usage
修改pom.xml
,增加如下配置:<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>3.5.0</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> </plugin> ... </plugins> </build> ... </project>
Failsafe
- Maven Failsafe Plugin
运行集成测试用例的插件。 - Plugin Documentation
- Usage
修改pom.xml
,增加如下配置:<project> ... <build> <!-- To define the plugin version in your parent POM --> <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <version>3.5.0</version> </plugin> ... </plugins> </pluginManagement> <!-- To use the plugin goals in your POM or parent POM --> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-failsafe-plugin</artifactId> <executions> <execution> <goals> <goal>integration-test</goal> <goal>verify</goal> </goals> </execution> </executions> </plugin> ... </plugins> </build> ... </project>
本文来自博客园,作者:jackieathome,转载请注明原文链接:https://www.cnblogs.com/jackieathome/p/18391606