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

Xel*_*ian 5 java jar maven maven-shade-plugin

嗨,我是Maven的新手我想知道如何在不将其目标附加到特定阶段的情况下使用插件.所以例如我想使用shade插件来创建超级jar(胖罐).

目标概述

The Shade Plugin has a single goal:
Run Code Online (Sandbox Code Playgroud)

阴影:阴影与包装相结合,用于制作阴影罐.

所以这个插件只有一个目标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>
Run Code Online (Sandbox Code Playgroud)

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

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

6to*_*ton 3

好的,但是如果我删除执行配置会发生什么,那么 Maven 能否理解将阴影目标放在哪里呢?

如果删除执行配置,插件将不会运行

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

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

如何理解这是哪个阶段?

这通常在插件文档中指定

上述文档描述说目标是绑定到package阶段的。这是否意味着我的执行配置是多余的?

在你的配置阶段是多余的。

请参阅https://maven.apache.org/guides/mini/guide-configuring-plugins.html#Using_the_executions_Tag了解更多信息。