美文网首页
Maven - 插件

Maven - 插件

作者: 吴吃辣 | 来源:发表于2019-08-13 10:44 被阅读0次

    版权所有,未经授权,禁止转载


    章节


    什么是Maven插件?

    Maven实际上是一个插件执行框架,Maven中的所有任务都是由插件完成的。

    Maven插件是构建目标的集合,也称为MOJO (Maven Old Java Object)。可以把插件理解为一个类,而构建目标是类中的方法。构建阶段包含一系列的构建目标,可以理解为按顺序调用各个插件中的构建目标(方法),然后一系列的构建阶段组成一个构建生命周期。

    构建目标可以绑定到多个构建阶段,也可以不绑定,就像类的方法可以被调用,也可以不被调用。

    插件示例:

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>${maven.failsafe.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    

    这是一个故障安全插件的简单配置,负责运行集成测试。可以看到,插件有两个主要目标:

    • integration-test: 运行集成测试
    • verify: 验证所有通过的集成测试

    我们可以使用下面的命令列出一个特定插件的所有目标:

    mvn <PLUGIN>:help
    

    例如,要列出故障安全插件中的所有目标:

    mvn failsafe:help
    

    输出:

    
    ...
    
    Maven Failsafe MOJO in maven-failsafe-plugin.
    
    This plugin has 3 goals:
    
    failsafe:help
      Display help information on maven-failsafe-plugin.
      Call mvn failsafe:help -Ddetail=true -Dgoal=<goal-name> to display parameter
      details.
    
    failsafe:integration-test
      Run integration tests using Surefire.
    
    failsafe:verify
      Verify integration tests ran using Surefire.
    ...
    
    

    可以看到插件包含3个目标。

    要执行一个特定的构建目标,不执行它的整个阶段(和前面的阶段),可以使用以下命令:

    mvn [plugin-name]:[goal-name]
    

    例如,可以使用maven-compiler-plugin的编译目标来编译Java项目,运行以下命令:

    mvn compiler:compile
    

    插件类型

    Maven提供了2种类型的插件:

    • 构建类插件 - 在构建过程中执行,pom中<build/>元素中配置。
    • 报告类插件 - 在文档生成过程中执行,pom中<reporting/>元素中配置。

    下面是一些maven内置的常用插件:

    • clean
    • compiler
    • surefire
    • jar
    • war
    • javadoc
    • antrun

    自定义插件

    如果maven内置插件不能满足项目需求,也可以开发自定义插件。

    开发自定义插件可参考官网

    相关文章

      网友评论

          本文标题:Maven - 插件

          本文链接:https://www.haomeiwen.com/subject/sfkvjctx.html