多模块项目 - 使用所有依赖的jar构建zip?

时间:2013-10-02 13:29:18

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

我有一个maven多模块项目,它可以构建一个常见的jar和一些应用程序jar(依赖于常见的jar)。我将每个应用程序组装成一个zip文件。我将所有依赖的jar放在zip文件的lib目录中。

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

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

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

有什么想法吗?

我对此有何建议?

我做了一点搜索但找不到答案...感谢任何指示。

1 个答案:

答案 0 :(得分:0)

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

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

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

现在每个应用程序都很小。

大。干得好......