7

これは、Tychoコミュニティでよく聞かれる質問です。

Eclipse RCPビルドを[以前のテクノロジー、たとえばeclipse-application/PDEヘッドレスビルド/...]から、パッケージタイプを使用してTychoで製品をビルドする新しい推奨方法にeclipse-repository移行しました。現在、私のディストリビューションには以前よりも多くのバンドルが含まれています。

問題は、Tychoが私の製品に含まれているバンドルのオプションの依存関係を取得することであるようです。どうすればこれを防ぐことができますか?

4

2 に答える 2

10

Tychoのeclipse-repositoryパッケージ化タイプは、たとえばEclipseIDEに新しい機能をインストールするときにも使用するのと同じテクノロジー(p2と呼ばれる)を使用して製品ディストリビューションを構築します。これには、他のビルドテクノロジーとは異なり、製品に必要なバンドルのすべての依存関係を手動で指定する必要がないという利点がありますが、Tycho/p2はそれらを自動的に含めます。(これは重要です。そうしないと、バンドルが実行時に開始されないためです。)

一方、これも不利になる可能性があります。Tycho/ p2には、製品から除外したい特定のオプションの依存関係も含まれています。

オプションの依存関係を含めないようにTychoに指示するオプションはありません(p2にはこのオプションがないため)。ただし、次の構成を使用して、不要なオプションバンドルを特定し、それらをターゲットプラットフォームから明示的に除外することができます。

<plugin>
   <groupId>org.eclipse.tycho</groupId>
   <artifactId>target-platform-configuration</artifactId>
   <version>${tycho-version}</version>
   <configuration>
      <filters>
         <filter>
            <type>eclipse-plugin</type>
            <id>unwanted.bundle.id</id>
            <removeAll />
         </filter>
      </filters>
   </configuration>
</plugin>

その後、製品ビルドは除外されたバンドルを認識できなくなり、インストールから除外されます。

注:上記の構成を追加した後に依存関係の解決エラーが発生した場合は、オプションではなくバンドルが必要なものがあります。読むのは少し難しいですが、エラーメッセージは、構築しているものから削除されたバンドルにつながる依存関係のチェーンを示します。

于 2012-09-11T14:40:20.160 に答える
0

私はこの回答に出くわし、RCPビルドからcom.ibm.icuを除外し、更新を投稿したいと思いました。

Tychoは、しばらくの間、オプションの依存関係を無視するように構成できます。https://wiki.eclipse.org/Tycho/Release_Notes/0.14を参照してください。

<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>target-platform-configuration</artifactId>
<version>${tychoVersion}</version>
<configuration>
  <dependency-resolution>
    <optionalDependencies>ignore</optionalDependencies>
  </dependency-resolution>
</configuration>
于 2021-04-12T12:43:31.173 に答える