【问题标题】:multi module project - build zip with all dependent jars?多模块项目 - 使用所有依赖的 jar 构建 zip?
【发布时间】:2013-10-02 13:29:17
【问题描述】:

我有一个构建的 maven 多模块项目、一个通用 jar 和一些应用程序 jar(取决于通用 jar)。我将每个应用程序组装为一个 zip 文件。我把所有依赖的jar都放在了zip文件的一个lib目录下。

我注意到应用程序非常大(大约 60Mb),而且其中大部分 与lib目录jar有关。我还注意到每个应用程序在其 lib 目录中都有一组类似的 jars(与其他应用程序一样)。由于我在父pom中使用了dependencyManagement,因此每个应用程序的每个lib目录中的所有jar版本都是相同的。

我想做的是在所有应用程序之间共享一个 lib 目录。 我应该创建一个包含所有依赖 jar 的 zip 文件吗?并将其解压缩到某个地方? 并将罐子的范围更改为提供?

我想知道是否必须更改一个应用程序才能使用某个 jar 的不同版本。理想情况下,我只需重建 jar 的 zip 并重新部署,它将包含 jar 的两个版本,以便现有的应用程序并且可以支持新修补的应用程序。

有什么想法吗?

我希望能得到一些关于这方面的建议?

我确实搜索了一下,但找不到答案...感谢您的任何指点。

【问题讨论】:

    标签: maven maven-2 maven-3 maven-assembly-plugin


    【解决方案1】:

    我通过创建一个 pom 类型的包装解决了这个问题,并在依赖项部分明确列出了所有 jars(从单个父 pom 的依赖项管理部分复制/粘贴)。我将范围设置为编译。我把它组装成一个 zip 文件。

    在父 pom 中,我将 dep mgt 部分中所有依赖项的范围设置为提供。 现在每个应用程序都继承了这个范围。

    我会将 libs.zip 解压缩到一个特定的目录中,并让每个应用程序都指向它(在 JDK 6 中,您可以设置类路径以包含一个目录中的所有 jar)。

    现在每个应用程序的大小都非常小。

    太好了。干得好……

    【讨论】:

      猜你喜欢
      • 2012-04-01
      • 2016-08-01
      • 1970-01-01
      • 2018-02-06
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      相关资源
      最近更新 更多