Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 多模块项目-使用所有相关JAR构建zip?_Maven_Maven 2_Maven 3_Maven Assembly Plugin - Fatal编程技术网

Maven 多模块项目-使用所有相关JAR构建zip?

Maven 多模块项目-使用所有相关JAR构建zip?,maven,maven-2,maven-3,maven-assembly-plugin,Maven,Maven 2,Maven 3,Maven Assembly Plugin,我有一个maven多模块项目,它构建了一个公共jar和许多应用程序jar(依赖于公共jar)。我将每个应用程序组装为一个zip文件。我将所有依赖jar放在zip文件的lib目录中 我注意到应用程序相当大(约60Mb),而且大多数 与lib目录jar相关。我还注意到,每个应用程序的lib目录中都有一组类似的jar(与其他应用程序一样)。因为我在父pom中使用了DependencyManager,所以每个应用程序的每个lib目录中的JAR的所有版本都是相同的 我想做的是在所有应用程序之间共享一个li

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

我注意到应用程序相当大(约60Mb),而且大多数 与lib目录jar相关。我还注意到,每个应用程序的lib目录中都有一组类似的jar(与其他应用程序一样)。因为我在父pom中使用了DependencyManager,所以每个应用程序的每个lib目录中的JAR的所有版本都是相同的

我想做的是在所有应用程序之间共享一个lib目录。 我应该创建一个包含所有相关jar的zip文件吗?把它解压缩到什么地方? 并将JAR的范围更改为提供

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

有什么想法吗

如果你能给我一些建议,我会很感激的


我确实搜索了一下,但找不到答案。。。谢谢你的指点。

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

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

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

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

太好了。干得好