Maven并行构建错误的顺序

Maven parallel build wrong order

我正在尝试通过并行处理加速我的 Maven 构建。该项目 multi-modular 带有嵌套模块。结构如下:

编辑:现在我什至看到,至少有一次 m3 在 sub-parent 甚至开始之前完成了它的复制目标,因此使用了 [= 之前​​的先前构建的结果43=] 开始清理了。

如果我这样做 mvn dependency:tree -Dverbose -Dincludes=my.packages.* 我看到 sub-parent 正确地列在 m3 的依赖项中。然而,有时(很少)并行构建 mvn -T 1C clean install 失败,因为 m3 构建早于 sub-parent 执行。

是否有强制执行命令的解决方法?我知道你不能直接设置它。问题是,我不能将 sub-parent 作为 m3 的依赖项,因为它没有工件。而且我不确定我是否需要它,因为依赖关系树显示 maven 知道这种依赖关系。

编辑: 我添加了一个示例最小项目。 https://github.com/Imaskar/build-order。除了 sub/keystore 需要换成真实的。有趣的是,这里的依赖树并没有将 sub 显示为 m3 的依赖项。如何告诉 m3 依赖它,尽管 sub 没有构建到 jar 文件?

好吧,我很久以前就想出来了,但希望任何人都能接受。解决方案是用

声明依赖关系
<type>pom</type>