我们有一堆 Eclipse 插件项目、功能和更新站点。我们创建了一个主 pom,我们在其中定义了模块:
<modules>
<module>bundles/b1</module>
<module>features/f1</module>
<module>p2/site1</module>
<module>bundles/b2</module>
</modules>
我们希望保留此顺序并按照使用多个模块的指南 按照上面的链接,我们假设将按照列出模块元素的顺序保留该顺序。
我们的要求:site1 生成一个 site_assembly.zip。我们想把这个 zip 文件打包成一个包,这就是“b2”包的作用。
我们的观察:
- 在多模块构建开始时打印的 Maven 反应器顺序是正确的,但是每个模块的构建都是分叉的。
- 因为 (1) 在构建 site1 项目之前构建了捆绑包 b2,并且能够生成站点程序集 zip。
- 我们尝试将“b2”的 pom.xml 中的依赖项添加到 site1,但构建失败,因为它首先尝试构建 b2,它依赖于目前尚未构建的 site1。
- 当我们对 osgi 片段进行单元测试时,我们观察到了相同的行为。按照我们明确指定主机在测试片段之前的顺序,但是当调用 maven 构建时,它总是在主机之前构建片段并且它曾经失败。
在 master pom 中定义的插件:
<plugin>
<!-- enable tycho build extension -->
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-maven-plugin</artifactId>
<version>${tycho-version}</version>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tycho-version}</version>
<configuration>
<disableP2Mirrors>true</disableP2Mirrors>
<resolver>p2</resolver>
<target>
<artifact>
<groupId>com.x.y</groupId>
<artifactId>p2.build.target</artifactId>
<version>${project.version}</version>
<classifier>x</classifier>
</artifact>
</target>
</configuration>
</plugin>
我们不确定 maven-tycho-plugin 是否会干扰反应器的顺序,因此我们将不胜感激。