Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven shade插件不会为“目标”自动调用;一揽子计划;_Maven_Plugins - Fatal编程技术网

Maven shade插件不会为“目标”自动调用;一揽子计划;

Maven shade插件不会为“目标”自动调用;一揽子计划;,maven,plugins,Maven,Plugins,我花了很多时间研究如何调用Maven shade插件来构建uber jar(具有所有依赖项)。 我发现的大多数google支持的信息(包括许多示例和Maven文档)表明,我所要做的就是将插件包含到pom.xml中: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin<

我花了很多时间研究如何调用Maven shade插件来构建uber jar(具有所有依赖项)。 我发现的大多数google支持的信息(包括许多示例和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>

org.apache.maven.plugins
maven阴影插件
2.4.3
包裹
阴凉处
然后“mvn包”(或最终调用“包”的任何其他目标)将自动触发此插件

但不管我怎么做,真正调用插件的唯一方法似乎是:运行“mvn package shade:shade”(这似乎违背了配置驱动构建的目的)。无论是从Eclipse内部(STS版本:3.8.2.RELEASE)还是从命令行(ApacheMaven3.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>

org.apache.maven.plugins
maven阴影插件
2.4.3
包裹
阴凉处
....
而不是

<build>
 <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>
</build>

org.apache.maven.plugins
maven阴影插件
2.4.3
包裹
阴凉处

这可能会解决您的问题。

请显示完整的pom文件…我假设您的位置不正确..我很乐意-但是pom.xml太大,无法在此处完整包含。您能否详细说明一下,您认为pom.xml的内容可能与它位于错误的位置有关?这个位置看起来相当标准(Eclipse将其放在项目根目录下的通常位置)!但我们看不出有任何选择。我试着投赞成票,但看不出有什么反应??UPD:哦,灰色复选框:)UX…有趣的是在MacOSX上,后者对我有效。用阴影包裹不起作用。你不需要在
中包裹插件吗?
?谢谢!!这也为我解决了问题。这有点疯狂,在所有关于阴影的教程中都没有提到。经过多次的挠头之后发现了这一点。谢谢