0

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

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

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

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

有什么想法吗 ?

我会很感激这方面的一些建议?

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

4

1 回答 1

0

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

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

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

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

伟大的。干得好...

于 2013-10-02T16:08:36.027 回答