Maven按顺序执行两个模块

时间:2015-06-20 15:51:12

标签: maven 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存储库

2 个答案:

答案 0 :(得分:1)

您是否尝试为start "" "Star Guard.exe" 设置p2-repository-generator依赖项?恕我直言,它应该强制执行你需要的构建序列。

答案 1 :(得分:1)

正如您所正确指出的,Tycho在构建中很早就做了一些事情,如果您在Tycho构建中使用相同的构建中生成内容,则会导致问题。此问题的解决方法是在maven-invoker-plugin调用中使用Tycho包装构建的一部分。