maven - 目标“包”不会自动调用Maven阴影插件

标签 maven plugins

我花了很多时间弄清楚如何调用Maven阴影插件来构建uber-jar(具有所有依赖项)。
我发现的大多数可谷歌搜索的信息(包括大量示例和Maven文档)表明,我要做的就是将插件包含在pom.xml中:

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


然后“ mvn软件包”(或最终调用“软件包”的任何其他目标)将自动触发此插件。

但是,不管我尝试了什么-实际调用该插件的唯一方法似乎是:运行“ mvn软件包shade:shade”(这似乎违反了配置驱动的构建的目的)。无论是从Eclipse(STS版本:3.8.2.RELEASE)中还是从命令行(Apache Maven 3.3.9)运行Maven,结果都是相同的。

我有什么想念的吗?

UPD:已解决,请参阅GauravJ的回答。

最佳答案

我设法重现了您的问题。在pom.xml中,您必须定义如下的插件,

<build>
<pluginManagement>
  <plugins>

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

  </plugins>
</pluginManagement>
</build>


代替

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


这可能会解决您的问题。

关于maven - 目标“包”不会自动调用Maven阴影插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42208526/

相关文章:

Maven 3 和时间戳

c++ - MFC 应用程序的 map 插件

java - 如何使动态加载的插件能够感知 Web 应用程序

plugins - 嗨,我想为 Sublime Text 2 找到一个用于自动关闭 html 标签的插件

android - phonegap-plugin-facebook-connect : no callback function after FB. 登录

java - 插件是否像 Maven 项目的依赖项一样下载文件?

java - Maven编译器,只编译带注释的类

java - 让 Maven 和 module-info 协同工作

java - 如何使用 jar 运行 cucumber ?

maven - 为什么Maven找不到osgi bundle依赖项?