2

我有一个生成 jar 文件的 Maven 模块。我被要求开发其他几个 uberjar 文件作为构建过程的副产品。我还被告知这 2 个 jar 文件是 applet jar 文件,需要包含来自 maven 模块依赖项的一些类。

我环顾四周并缩小到这三个选项 -

  1. Maven Assembly 插件 - 这可以从 maven 模块生成的类构建自定义 jar。不能包含第三方依赖项。
  2. 通过 Maven 使用 ant - 使用maven-dependency-plugin解包依赖项,然后通过 ant 脚本打包 applet jar。
  3. 使用Maven shade 插件- 虽然这个插件不直接适合我的要求,但我可以让它工作。

虽然我可以使用 (b) 和 (c),但我无法决定使用哪一个。我注意到的一件事是使用依赖插件非常耗时。

我想知道人们是否有其他方法可以达到相同的要求。

4

2 回答 2

4

您可以使用带有元素的程序集插件包含依赖项dependencySet,请参阅:

具体来说,这是取自Andrew E Bruno 博客的示例:

<dependencySets>
  <dependencySet>
    <outputDirectory></outputDirectory>
    <outputFileNameMapping></outputFileNameMapping>
    <unpack>true</unpack>
    <scope>runtime</scope>
    <includes>
      <include>commons-lang:commons-lang</include>
      <include>commons-cli:commons-cli</include>
    </includes>
  </dependencySet>
</dependencySets>
于 2012-04-11T00:25:11.330 回答
0

我最终使用了与上述相同的方法来使用程序集插件。我离开了 shade 插件,因为我也使用 maven 外部的资源生成了几个程序集,并且 shade 插件对此类任务没有很好的支持。

于 2012-04-16T20:45:22.367 回答