Maven实际上是一个插件执行框架,其中每个任务实际上都是由插件完成的. Maven插件通常用于 : 去;
创建jar文件
创建war文件
编译代码文件
代码的单元测试
创建项目文档
创建项目报告
插件通常提供一组目标,可以使用以下语法执行 :
mvn [plugin-name]:[goal-name]
例如,一个Java项目可以通过运行以下命令使用maven-compiler-plugin的编译目标进行编译.
mvn compiler:compile
Maven提供了以下两种类型的插件和减号;
Sr.No. | Type&描述 |
---|---|
1 | 构建插件 它们在构建过程中执行,应该在< build/>中配置. pom.xml的元素. |
2 | 报告插件 它们在网站生成过程中执行,应在< reporting/>中进行配置. pom.xml的元素. |
以下是几个常见插件的列表 :
Sr.No. | 插件&说明 |
---|---|
1 | clean 构建后清理目标.删除目标目录. |
2 | compiler 编译Java源文件. |
3 | surefire 运行JUnit单元测试.创建测试报告. |
4 | jar 从当前项目构建JAR文件. |
5 | war 从当前项目构建WAR文件. |
6 | javadoc 为项目生成Javadoc. |
7 | antrun 从构建中提到的任何阶段运行一组ant任务. |
示例
我们'我们在示例中广泛使用了 maven-antrun-plugin 来在控制台上打印数据.请参阅构建配置文件章节.让我们以更好的方式理解它,并在C:\ MVNN\project文件夹中创建一个pom.xml.
<project xmlns = "http://maven.apache.org/POM/4.0.0" xmlns:xsi = "https://img01.yuandaxia.cn/Content/img/tutorials/maven/XMLSchema-instance" xsi:schemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.companyname.projectgroup</groupId> <artifactId>project</artifactId> <version>1.0</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.1</version> <executions> <execution> <id>id.clean</id> <phase>clean</phase> <goals> <goal>run</goal> </goals> <configuration> <tasks> <echo>clean phase</echo> </tasks> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
接下来,打开命令控制台并转到包含pom.xml的文件夹,然后执行以下 mvn 命令.
C:\ MVN \ project> mvn clean
Maven将开始处理并显示清洁生命周期的清洁阶段.
[INFO] Scanning for projects... [INFO] ------------------------------------------------------------------ [INFO] Building Unnamed - com.companyname.projectgroup:project:jar:1.0 [INFO] task-segment: [post-clean] [INFO] ------------------------------------------------------------------ [INFO] [clean:clean {execution: default-clean}] [INFO] [antrun:run {execution: id.clean}] [INFO] Executing tasks [echo] clean phase [INFO] Executed tasks [INFO] ------------------------------------------------------------------ [INFO] BUILD SUCCESSFUL [INFO] ------------------------------------------------------------------ [INFO] Total time: < 1 second [INFO] Finished at: Sat Jul 07 13:38:59 IST 2012 [INFO] Final Memory: 4M/44M [INFO] ------------------------------------------------------------------
上面的例子说明了以下关键概念 :
使用plugins元素在pom.xml中指定插件.
每个插件可以有多个目标.
您可以使用其阶段元素定义插件应从哪里开始处理的阶段.我们已经使用了 clean 阶段.
您可以通过将任务绑定到插件目标来配置要执行的任务.我们将 echo 任务绑定到 maven-antrun-plugin 的 run 目标.
如果本地存储库中没有该插件,Maven将下载该插件并开始处理.