4

私は、Eclipse ベースのプロジェクトの Maven/Tycho ベースのビルドを担当しています。このプロジェクトは、実際には 2 つのサブプロジェクト Pa と Pb で構成されており、それぞれが別々にビルドされています。Pa には、p2 リポジトリにアセンブルされる多数の機能とプラグインが含まれています。Pb には、すべて Pa の機能に依存する、別の一連の機能と製品が含まれています。

問題は、Pb の機能と Pa の機能から Pb 製品をビルドしようとしたときに発生します。したがって、私の製品ファイルには次のような機能が含まれています。

<features>
  <feature id="de.cau.cs.kieler.synccharts.feature" version="0.0.0"/>
  <feature id="de.cau.cs.kieler.kaom.feature" version="0.0.0"/>
</features>

最初の機能はプロジェクト Pb からのものですが、2 番目の機能は Pa からのもので、p2 リポジトリからダウンロードするには Maven/Tycho が必要です。リポジトリは、親 pom.xml の次の定義によってビルド システムに認識されます。

<profiles>
  <profile>
    <id>juno42</id>
    <properties>
      <tycho-version>0.17.0</tycho-version>
      <targetJdk>1.5</targetJdk>
    </properties>

    <repositories>
      <repository>
        <id>p2.pa</id>
        <layout>p2</layout>
        <url>repository_url_of_project_pa</url>
      </repository>
    </repositories>
  </profile>
</profiles>

Pb をビルドしようとすると (以前に Pa をビルドし、上記で定義した URL で更新サイトを公開した後で)、次のようなエラー メッセージが表示されます。

[ERROR]   Software being installed: de.cau.cs.kieler.product 0.8.0.qualifier
[ERROR]   Missing requirement: de.cau.cs.kieler.kaom.feature.feature.group 0.6.0.201304190326 requires 'de.cau.cs.kieler.core.model.gmf [0.2.2.201304190326]' but it could not be found
[ERROR]   Cannot satisfy dependency: de.cau.cs.kieler.product 0.8.0.qualifier depends on: de.cau.cs.kieler.kaom.feature.feature.group 0.0.0

Maven/Tycho は明らかに、最終製品に含まれる機能を Pa から見つけましたが、機能を構成するプラグインを見つけることができませんでした。プラグインが実際に Pa の p2 リポジトリに公開されていることと、必要なバージョンが一致していることを再確認しました。

見落としているものはありますか?Tycho は、機能が既に見つかっている場合、機能を構成するプラグインを見つけることができるべきではありませんか? この問題を解決するための助けをいただければ幸いです。:)

ちなみに、私たちのプロジェクトでは、Tycho は pom.xml ファイルで定義された依存関係ではなく、プラグインの MANIFEST.MF ファイルに基づいて依存関係を計算します。Tycho が 1 つのリアクター ビルドで 2 つを混在させることができないという問題に遭遇したとき、私はそれを確認しました。

4

2 に答える 2

1

構成を含むプロファイルをアクティブ化していないなど、ターゲット プラットフォーム構成にエラーがあるようです。

ビルドをデバッグ モード ( -X) で開始し、Tycho によって出力されるターゲット プラットフォームの構成を確認する必要があります。

于 2013-05-06T12:39:07.640 に答える
0

私が気づいたことの1つは、バージョン0.8.0.qualifierを参照している間です

あなたの製品では、ビルドは別のバージョン 0.6.0.qualifier について不平を言います

[エラー] 要件がありません: de.cau.cs.kieler.kaom.feature.feature.group 0.6.0.201304190326 には 'de.cau.cs.kieler.core.model.gmf [0.2.2.201304190326]' が必要ですが、できませんでした見つかった

また、バージョン参照で「.qualifier」を使用しないでください。ただし、.qualifier が現在のビルド タイムスタンプに置き換えられているため、同じリアクターでビルドされている場合を除きます。代わりに「0.0.0」を使用してみてください。

これは、既知の tycho バグのようですhttps://bugs.eclipse.org/bugs/show_bug.cgi?id=373817

于 2013-04-23T06:56:18.043 に答える