Maven顺序执行两个模块
Maven execute two modules sequentially
我有两个 Maven 项目:
- 构建几个 OSGi 包并创建包含它们的本地 p2 存储库
- 另一个使用这些包构建了一个带有 tycho 的 Eclipse 插件
当我分别执行它们时,一切正常:第一次执行创建存储库,第二次可以使用它。
但我想创建一个同时执行两者的 pom。简单方法:
<modules>
<module>p2-repository-generator</module>
<module>tycho-project</module>
</modules>
不起作用,因为 tycho 试图使用第一个 pom 生成的存储库,甚至在它存在之前 as described here。
我可以在没有外部工具的情况下使用 maven 顺序执行两个 maven 任务吗?或者我可以将 tycho 的依赖挂钩延迟到构建的稍后时间点吗?
澄清一下:
tycho-project
依赖于p2-repository-generator
,所以在它之后执行。
- 但 Tycho 使用自定义 lifecycle participant,它试图通过
afterProjectsRead
回调来解决 p2 依赖关系 - 这太早了,因为 p2 存储库只会在 p2-repository-generator
之后存在建造它。
- 这个聚合器在我手动执行一次
p2-repository-generator
后工作,因为 tycho-project
能够找到它生成的 p2 存储库
您是否尝试为 tycho-project
设置对 p2-repository-generator
的依赖?恕我直言,它应该在此处强制执行您需要的构建顺序。
正如您正确指出的那样,Tycho 在构建的早期就开始做事,如果您在同一个构建中生成供 Tycho 构建使用的内容,则会导致问题。此问题的解决方法是在 maven-invoker-plugin 调用中包装使用 Tycho 的构建部分。
我有两个 Maven 项目:
- 构建几个 OSGi 包并创建包含它们的本地 p2 存储库
- 另一个使用这些包构建了一个带有 tycho 的 Eclipse 插件
当我分别执行它们时,一切正常:第一次执行创建存储库,第二次可以使用它。
但我想创建一个同时执行两者的 pom。简单方法:
<modules>
<module>p2-repository-generator</module>
<module>tycho-project</module>
</modules>
不起作用,因为 tycho 试图使用第一个 pom 生成的存储库,甚至在它存在之前 as described here。
我可以在没有外部工具的情况下使用 maven 顺序执行两个 maven 任务吗?或者我可以将 tycho 的依赖挂钩延迟到构建的稍后时间点吗?
澄清一下:
tycho-project
依赖于p2-repository-generator
,所以在它之后执行。- 但 Tycho 使用自定义 lifecycle participant,它试图通过
afterProjectsRead
回调来解决 p2 依赖关系 - 这太早了,因为 p2 存储库只会在p2-repository-generator
之后存在建造它。 - 这个聚合器在我手动执行一次
p2-repository-generator
后工作,因为tycho-project
能够找到它生成的 p2 存储库
您是否尝试为 tycho-project
设置对 p2-repository-generator
的依赖?恕我直言,它应该在此处强制执行您需要的构建顺序。
正如您正确指出的那样,Tycho 在构建的早期就开始做事,如果您在同一个构建中生成供 Tycho 构建使用的内容,则会导致问题。此问题的解决方法是在 maven-invoker-plugin 调用中包装使用 Tycho 的构建部分。