2

我们有一堆 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”包的作用。

我们的观察:

  1. 在多模块构建开始时打印的 Maven 反应器顺序是正确的,但是每个模块的构建都是分叉的。
  2. 因为 (1) 在构建 site1 项目之前构建了捆绑包 b2,并且能够生成站点程序集 zip。
  3. 我们尝试将“b2”的 pom.xml 中的依赖项添加到 site1,但构建失败,因为它首先尝试构建 b2,它依赖于目前尚未构建的 site1。
  4. 当我们对 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 是否会干扰反应器的顺序,因此我们将不胜感激。

4

1 回答 1

1

Tycho 从 Eclipse 描述符文件(MANIFEST.MF、feature.xml 等)中解析依赖关系并重新排序模块,以便首先构建所需的工件。

于 2012-07-19T18:14:03.343 回答