gpt4 book ai didi

java - 将 Maven 子模块打包到单个存档中

转载 作者:行者123 更新时间:2023-12-01 12:05:30 24 4
gpt4 key购买 nike

我有一个 Maven 项目,它分为几个子模块。结构如下所示:

  • base - 所有子模块的父级
  • 基础/bom - Material list
  • 基础/核心 - 应用程序逻辑和公共(public)接口(interface)
  • base/gui-impl - gui 的实现(取决于核心)

我想添加另一个模块,负责将整个应用程序打包到一个可运行的 JAR 中。不幸的是,如果我只是创建该子模块并定义对其他模块的依赖关系,我将得到包含其他 jar 的 jar(而不仅仅是编译的类)。顺便说一下 - core 将被打包两次(因为 gui-impl 也依赖于 core)。

如何解决这个问题?有没有 Maven 插件可以帮助我?

最佳答案

如果您想要一个包含所有依赖项的可执行 jar,请使用 maven-shade-plugin 。无论它们多么困惑,您都不会得到任何重复的导入。此外,您不必为此创建单独的子模块,您可以在已经存在的顶级子模块中执行此操作(但这实际上取决于您)。

用于此目的的其他值得注意的插件有 maven-assembly-plugin满足复杂的包装需求和appassembler-maven-plugin ,它不会生成单个 jar,而是生成一个带有 bin/、conf/、lib/目录和执行脚本的漂亮目录布局,我更喜欢最终用户应用程序。我通常做的是使用appassembler创建应用程序目录,然后使用Assembly-plugin将它们打包成tar.gz或.zip进行分发。

关于java - 将 Maven 子模块打包到单个存档中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27655947/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com