1

Eclipse (Java) 用のプラグインを作成しようとしています。

ソースコードに変更がある場合 (バグ修正など)、プラグインは eclipse-Project のどのファイルが変更されたかを認識する必要があります (影響を受ける JUnit テストを実行するため)。SVN Syncronisation-Status でそれを実現する予定です。

したがって、ファイルがリポジトリの「同じ」ファイルと異なる場合 (発信変更)、ファイルが編集されたことがわかります (もちろん)。

org.eclipse.team.* パッケージ/ライブラリーを使用できることはわかっています。

また、このパッケージの「SyncInfo」で作業できることもわかりました。

しかし、これを実装する方法が本当にわかりません。

テストしたいEclipseプロジェクトの情報をプラグインに提供するには、「IResource」または「IProject」を定義する必要があると思います。

インターネット上であまり有益な情報を見つけることができませんでした。

4

2 に答える 2

0

私はこれを1か月間探していました。プロジェクトの変更セット(リポジトリの「作業コピー」)を読み取ることができるEclipse用のプラグインをプログラムしようとしました。

私が今やったことは、醜い回避策です。

Runtime.exec() を使用して cmd-command / Shell- command を実行しました。svn-commandline Client をインストールする場合は、svn status -v -u と入力できます。作業コピーのすべてのファイルのリストと変更セット情報が表示されます。

リストを解析して、「M」で始まるすべての行を見つけることができます-「変更された」ために、変更されたファイルのパスを取得します。

于 2013-08-22T11:25:46.120 に答える
0

IResourceまたはを定義しませんIProject。代わりに、Workbenchクラスを使用して取得する必要があります。

 IWorkspace workspace = ResourcesPlugin.getWorkspace();
 IProject project = workspace.getRoot().getProject(...);
 IJavaProject javaProject = JavaCore.create(project);

これで、プロジェクトにリンクされたすべてのリソースを反復処理できます。

とはいえ、実装IncrementalProjectBuilderして Eclipse に何が変更されたかを通知させて、それらの要素の単体テストを簡単に実行できるようにする方がよい場合があります。これで、インクリメンタル ビルダーを使い始めることができます: Eclipse ヘルプ: インクリメンタル プロジェクト ビルダー

この方法では、Subversion を処理する必要はまったくありません。誰がそれを引き起こしたかに関係なく、プロジェクトへの変更はビルダーをトリガーし、変更をどうするかを決定できます。

良い方法は、テストを収集してキューで実行し、バックグラウンド ワーカーでこのキューを処理することです。

于 2013-07-15T14:31:43.413 に答える