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)バンドルb2は、site1プロジェクトがビルドされる前にビルドされ、サイトアセンブリzipを生成できます。
  3. 「b2」のpom.xmlの依存関係をsite1に追加しようとしましたが、これまでビルドされていないsite1に依存関係があるb2を最初にビルドしようとしたため、ビルドが失敗しました。
  4. ユニットテストを行ったときに、osgiフラグメントと同じ動作が観察されました。ホストがテストフラグメントの前に来ることを明確に指定した順序で、Mavenビルドが呼び出されると、常にホストの前にフラグメントがビルドされ、失敗していました。

マスター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 に答える