Maven shade插件不会为“目标”自动调用;一揽子计划;
我花了很多时间研究如何调用Maven shade插件来构建uber jar(具有所有依赖项)。 我发现的大多数google支持的信息(包括许多示例和Maven文档)表明,我所要做的就是将插件包含到pom.xml中: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<
<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上,后者对我有效。用阴影包裹
中包裹插件吗?
?谢谢!!这也为我解决了问题。这有点疯狂,在所有关于阴影的教程中都没有提到。经过多次的挠头之后发现了这一点。谢谢