2

Tychoを使用してEclipse更新サイトを構築しましたが、そこから機能をターゲットIDEにインストールしようとすると失敗します。

更新サイトは正常に構築されます。ターゲットのEclipseインストールからそれを確認し、インストールする機能を選択できます。ただし、宣言された依存関係(org.eclipselabs.xtext.utils.unittesting)が見つからないため、インストールの開始時に依存関係のチェックは失敗します。これは依存関係であってはなりません。私のEclipseプラグインプロジェクトの1つで誤ってMANIFEST.MFに含まれていました。

マニフェストから依存関係を削除して、mvn clean install再度実行しました。ビルドは成功を報告しましたが、新しくビルドされた更新サイトを使用しようとすると、(a)への依存関係がorg.eclipselabs.xtext.utils.unittesting存在し、(b)を満たすことができないという文句が表示されます。

したがって、質問は次のとおりです。生成された更新サイトから依存関係を削除するには、他に何をする必要がありますか?

ポインタをありがとう。

PS:依存関係を満たすことができるように、ターゲットのEclipseインストールにoexuunittestingのサイトを追加できることはわかっています。しかし、私はそれをしたくありません。この機能が機能する必要はなく、他のユーザーが不要な依存関係を追加する必要はありません。

4

2 に答える 2

6

シナリオに関係している可能性のあるキャッシュの場所のリストと、それらをクリアする方法は次のとおりです。

  • ターゲットフォルダー:ターゲットフォルダーに以前のビルドの結果が含まれている場合、このデータはビルドを高速化するためにMavenビルドによって使用される場合があります。Tychoはこの機能を利用していません。また、AFAIKは、ターゲットフォルダーから存在するものを取得しないようにする必要があります。

    確かに、あなたの呼び出しには常にclean目標を含めてください。mvn

  • ローカルMavenリポジトリ:リアクターのパーツのビルドをサポートするために、Tychoはローカルでビルドされたアーティファクトをmvn clean installターゲットプラットフォームに追加します。この機能に気付いていない場合、これはさまざまな奇妙な影響を与える可能性があります。

    これを回避するには、必要がない限り、でビルドしinstallないでください。mvn clean verify代わりに使用してください。また、ファイルを削除すると、 ~/.m2/repository/.meta/p2-local-metadata.propertiesTychoが「ローカルにインストールされている」と見なすものがリセットされます。

    Tycho 0.16.0以降、コマンドラインスイッチを使用して1つのビルドで、-Dtycho.localArtifacts=ignoreまたはsettings.xmlで同じプロパティを設定することにより、すべてのビルドでこの動作を無効にすることもできます。

  • p2:Eclipseのp2更新マネージャーは、Eclipseの開始以降に使用したp2リポジトリーをキャッシュします。

    p2にリポジトリを強制的に再ロードするには、[設定]>[インストール/更新]>[利用可能なソフトウェアサイト]に移動し、リポジトリを選択して[再ロード]をクリックします。Eclipseを再起動すると、リポジトリーも再ロードされます。

于 2012-09-21T12:28:03.537 に答える
0

ゲームに遅れているかもしれませんが、それでも自分の経験を共有したいと思います。

p2-maven-pluginを使用して、通常のjarファイルをosgiバンドルに変換しています。変換されたjarファイルをキャッシュします

~/.m2/repository/p2/osgi/bundle

jarのバージョンを変更しない限り、p2プラグインは常にその場所から古いバンドルをロードします。

そのフォルダ内の古いバンドルを削除し、プロジェクトを再構築すると、問題が解決します。

于 2016-08-15T09:33:25.213 に答える