【发布时间】:2017-02-13 16:09:16
【问题描述】:
我花了很多时间弄清楚如何调用 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>
然后“mvn package”(或任何其他最终调用“package”的目标)将自动触发此插件。
但无论我尝试什么 - 实际调用插件的唯一方法似乎是:运行“mvn package shade:shade”(这似乎违背了配置驱动构建的目的)。无论是从 Eclipse(STS 版本:3.8.2.RELEASE)还是从命令行(Apache Maven 3.3.9)运行 Maven,结果都相同。
我错过了什么吗?
UPD:已解决,请参阅 GauravJ 的回答。
【问题讨论】:
-
请出示您的完整 pom 文件...我认为您的位置错误..
-
我很乐意 - 但 pom.xml 相当大,无法在此处完整包含。您能否详细说明您认为 pom.xml 的内容可能与它位于错误的位置有关?该位置看起来很标准(Eclipse 将其放置在通常的位置,在项目根目录下)。