我们可以添加maven插件而不将其目标添加到特定阶段吗?

时间:2015-06-04 15:16:48

标签: java maven jar maven-shade-plugin

您好我是Maven的新手我想知道如何在不将其目标附加到特定阶段的情况下使用插件。例如,我想使用shade插件来创建uber-jar(胖罐)。

目标概述

The Shade Plugin has a single goal:
  

shade:shade绑定到包阶段,用于创建   阴影罐。

因此插件只有一个名为shade的目标。

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-shade-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <id>shade</id>
            <phase>package</phase>
            <goals>
                <goal>shade</goal>
            </goals>
        </execution>
    </executions>
</plugin>

所以我说'Hey Maven'我想将shade的插件目标shade附加到你的package生命周期。好的,但如果我删除执行配置怎么办接下来会发生什么,Maven知道在哪里设置阴影目标?每个插件是否都将其目标从其创建者阶段预定义?怎么能理解这个阶段到底是什么?

前面提到的文档描述说目标必然是打包阶段。这是否意味着我的执行配置是多余的?

1 个答案:

答案 0 :(得分:2)

  

好的,但如果我删除执行配置会怎样   然后发生了什么,Maven知道在哪里设置阴影目标?

如果删除执行配置,插件将无法运行

  

每个插件是否都将其目标从其创建者阶段预定义?

每个目标都可以有一个默认阶段。因此,即使未指定phase并且定义了默认阶段,目标也将在构建周期的该阶段执行。

  

怎么能理解这个阶段是什么?

这通常在插件文档中指定

  

前面提到的文档描述表明了目标必然   包装阶段。这是否意味着我的执行配置是   冗余?

在您的配置阶段是reduntant。

有关其他信息,请参阅https://maven.apache.org/guides/mini/guide-configuring-plugins.html#Using_the_executions_Tag