Maven的常用插件
- Apache Maven
Clean
-
Apache Maven Clean Plugin
清理编译期在如下目录内生成的文件。project.build.directory
project.build.outputDirectory
project.build.testOutputDirectory
project.reporting.outputDirectory
-
Plugin Documentation
-
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>
-
Dependency Information
-
代码仓库
Compiler
-
Apache Maven Compiler Plugin
对于Java项目来说,源码的默认路径为src/main/java
,测试代码的默认路径为src/test/java
。 -
Plugin Documentation
-
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>
-
Compiling Sources Using A Different JDK
-
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
-
Apache Maven Deploy 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-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>
-
Frequently Asked Questions
-
代码仓库
Install
-
Apache Maven Install 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-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
。 -
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-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>
-
Filtering
-
Filtering Properties Files
-
Including and excluding files and directories
-
Binary filtering
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>