如何构建具有依赖项的超级罐子



我有一个生成jar文件的maven模块。我被要求开发其他几个超级罐子文件作为构建过程的副产品。我还被告知这两个jar文件是小程序jar文件将需要包含来自 Maven 模块依赖项的一些类。

我环顾四周,缩小到这 3 个选项——

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

虽然我可以处理 (b) 和 (c) 的东西,但我无法决定使用哪一个。我注意到的一件关键事情是使用依赖插件很耗时。

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

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

  • http://maven.apache.org/plugins/maven-assembly-plugin/assembly.html#class_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>

我终于使用您上面描述的相同方法使用了汇编插件。我放弃了阴影插件,因为我也使用来自 maven 外部的资源生成了几个程序集,并且阴影插件对此类任务没有很好的支持。

最新更新