Maven阴影两次-如何定义要着色的罐子

时间:2019-01-31 17:02:11

标签: maven maven-shade-plugin

在构建过程中,我需要着色两次。为什么执行此操作与问题并没有真正的关系,但这是原因:因为我先隐藏自己的依赖项,然后才混淆了第一个胖子,然后我也希望隐藏第三方依赖项。

Firs的困难是使目标按正确的顺序运行。默认情况下,如果一切都发生在包装阶段(这看起来很合逻辑),则两个阴影都将连续执行,然后进行混淆处理。我设法调整了Maven阶段,以使目标以正确的顺序执行,但现在我陷入了困境,因为似乎:

  • 第一个阴影在我的输出上自动执行 maven-jar-plugin
  • 第二个阴影也一样

因此,我最终得到了一个模糊的部分阴影罐子,以及一个完全阴影的不模糊罐子。

我找不到将特定的源jar强制设置为阴影配置的相关选项。 Shade documentation没有提供任何线索。我想我可以通过适当执行所有操作来解决我的问题,但我宁愿不这样做。

1 个答案:

答案 0 :(得分:1)

我对source code进行了简短的扫描,实际上,从插件版本3.2.1开始,似乎无法在配置中指定输入jar。 550行周围的错误消息特别提到了jar插件对jar的要求。有些open issues似乎要求类似的要求。

不过,在检查了文档之后,我想知道是否可以配置一些东西来继续覆盖主jar(target/my-artifact-1.0.0.jar)。换句话说,配置第一个阴影执行和混淆处理以将输出定向到该文件。然后,第二个阴影执行将具有正确的输入。这种方法的缺点是没有中间文件可以分析是否出了问题。

在这种情况下,也许最好按照MSHADE-304的注释中的建议编写自定义转换器。