我试图设置 maven 将我所有的构建工件组装到一个中央分发文件夹中。为了帮助解释,我在这里上传了一个示例项目
这是一个简单的多模块项目,包含 2 个 j2ee 组件,每个组件都有一个 war 和 ear 子项目。如果您在顶级 pom 中注释掉程序集插件,一切都会正常构建。
还有一个outputFolder
是我希望组装完成后的外观。此外,outputFolder
还有来自其他仅构建单个 jar 的子项目的杂项 jar 文件(目前我们有大约 20 个这样的应用程序 jar)。现在,由于所有 j2ee 项目都具有相同的目录结构和生成的分发格式,我想创建一个通用的程序集描述符,以便在我们所有的 j2ee 组件(目前大约有 15 个)中重复使用。
到目前为止我所拥有的不起作用 - 因为它不会从任何子项目中找到二进制工件。我已经尝试在程序集描述符中使用 moduleSet 和 dependencySet 部分,但这些似乎也不起作用,我总是得到类似的东西:The following patterns were never triggered in this artifact inclusion filter: 'myCompany:j2ee_A_ear:ear'
或者如果我尝试将程序集描述符放在顶级项目中,它会在打包我的耳朵时导致奇怪的依赖错误文件。
我尝试使用依赖复制插件,但这似乎导致的问题多于它解决的问题。也有人说,依赖插件是解决这个问题的方法。我尝试创建仅打包项目——在我的示例中是 j2ee_A 和 j2ee_B 项目的兄弟项目,但它似乎找不到任何模块或依赖项
所以我正在寻找一个程序集描述符(或描述符s),它将是:
a)可在任意数量的 j2ee 子项目中重用
b)也支持单个 jar 文件
c)将所有内容复制到单个文件夹
欢迎提出想法、建议和示例。