插件说明

  1. phase中绑定一个或多个插件,插件中有一个或多个的goal,goal就相当于一个个功能,执行phase就相当于执行插件中的goal

  2. 默认情况下,只有少数一些phase绑定了plugin,大多phase都没有绑定plugin,也就是执行到这个phase什么都不做直接执行下一个phase

  3. 比如现在有一个需求,默认情况下我们打jar包是没有将各种依赖打到jar包中,这就有可能导致运行的时候缺各种类,如果要实现将依赖也打入jar包中,那么就需要手动配置pulgin了

    插件配置语法

  4. 需求:默认情况我们打出来的jar包不是源码包,很多开源项目都会提供源码包供我们阅读,如果要打源码包就需要进行插件配置了,配置语法如下

    1. <build>
    2. <plugins>
    3. <plugin>
    4. <groupId>org.apache.maven.plugins</groupId>
    5. <artifactId>maven-source-plugin</artifactId>
    6. <version>2.1.1</version>
    7. <executions>
    8. <execution>
    9. <id>attach-sources</id>
    10. <phase>verify</phase>
    11. <goals>
    12. <goal>jar-no-fork</goal>
    13. </goals>
    14. </execution>
    15. </executions>
    16. </plugin>
    17. </plugins>
    18. </build>
  5. 插件也是个jar包,需要从远程仓库进行下载,其中比较重要的就是execution标签,该标签的主要作用是绑定插件和phase,如下就是将maven-source-plugin插件的jar-no-fork goal绑定到verify阶段,那么执行verify的时候就会执行该插件的jar-no-fork goal了

    <execution>
     <id>attach-sources</id>
     <phase>verify</phase>
     <goals>
         <goal>jar-no-fork</goal>
     </goals>
    </execution>
    
  6. 当然executions可以指定多个execution,将插件绑定多个phase

  7. execution的goals也可以指定多个,标识执行该插件的多个goal

  8. 运行verify就可以打源码包了

image.png

参考

  1. 相关插件参考文档
    http://maven.apache.org/plugins/index.html