我试图设置maven将我的所有构建工件组装到一个中央分发文件夹中。为了帮助解释,我上传了一个示例项目here
这是一个简单的多模块项目,包含2个j2ee组件,每个组件都有一个war和ear子项目。如果你在顶级pom中注释掉汇编插件,一切都会好起来的。
还有一个outputFolder
,这就是我在整理装配时想要看的东西。同样在outputFolder
中的misc 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'
或者,如果我尝试将汇编描述符放在顶级项目中,则在打包我的ear文件时会导致奇怪的依赖性错误。
我曾尝试使用依赖项复制插件,但这似乎会导致比解决更多的问题。其他人也说,依赖插件是实现这一目标的方法。我曾尝试创建仅包装项目 - 我的示例中的j2ee_A和j2ee_B项目的兄弟,但它似乎无法找到任何模块或依赖项
所以我正在寻找一个汇编描述符(或描述符 s ),它将是:
a)可以在任何数量的j2ee子项目中重复使用
b)也支持单个jar文件
c)将所有内容复制到一个文件夹
欢迎提出意见,建议和例子。