3

任意のファイルまたはフォルダー (ナビゲーター ビューなど) で右クリック メニュー オプションを表示する Eclipse プラグインを作成しました。選択された各ファイル (および選択されたディレクトリ内の各ファイル) について、プラグインはファイルの MD5、SHA-1、SHA-256、SHA-384、または SHA-512 ハッシュを計算して表示します。開発中にデバッグすると、プラグインは完全に機能します。

site.xml を使用してサイトを作成し、それをサーバーに配置してから Eclipse にインストールすると (正常にインストールされます)、メニューが表示されます。選択したファイルのハッシュを計算して表示できますが、選択したフォルダーでは機能しません。コードはまったく変更されていません。常にデバッグ モードで動作し、インストールすると動作しません。

私の質問はこれです:どうすればこれをデバッグできますか? 最初は、Eclipse のファイルがヒントになると思ってworkspace/.metadata/.logいましたが、エラーは出力されません。デスクトップにファイルを書き込むコードを追加しようとさえしましたが、そのファイルは決して作成されません。何が起こっているのか、またはこれを修正するにはどうすればよいのか、誰にも手がかりがありますか? デバッグでこれほど苦労したことはありません。

参考までに、https://github.com/gfairchild/eclipse-hasherがプロジェクトです。すべてのソース コードはそこで表示できます (Eclipse プロジェクトとしてインポートできます)。


答えは最終的に2つのことを含みました:

  1. libビルドプロセス中にディレクトリを含めていませんでした。私が使用する依存関係 (Apache Commons Codec) は含まれていなかったので、もちろん実行されませんでした。
  2. テスト プロセス中に、Hasher のビルドを手動で Eclipse/プラグインに入れようとしました。Eclipse インターフェースから Hasher をアンインストールすると、このファイルが削除されると誤って想定していました。そうではありませんでした。そのため、先月、古いバージョンの Hasher が Eclipse にロードされていました。それは信じられないほどイライラします。しかたがない。学んだ教訓。

助けてくれたみんな、どうもありがとう!

4

4 に答える 4

2

IFIle最初に特定の拡張機能のみを使用してターゲット プラットフォームでプラグインをテストし、IFolder後で追加した可能性がありますが、プラグインのバージョンを上げておらず、-cleanで実行しなかったため、更新されたプラグインは Eclipse に読み込まれませんでした。 (Eclipse がプラグインをリロードするために必要です)。

于 2013-10-04T06:38:20.093 に答える
1

コードはExecutionEvent、スレッドが実行されるまでは値が有効であると想定していますが、そうではない場合があります。メソッド内のイベントから必要なものをすべて取得し、executeそれらをワーカー スレッドに渡します。

object instanceof IFileまた、使用または使用するのではなくIFolder

IFile file = (IFile)Platform.getAdapterManager().getAdapter(object, IFile.class);

についても同じですIFolder

于 2013-10-12T09:04:59.503 に答える
1

梱包に問題があります。任意の zip ソフトウェアを使用して jar ファイルを開くと、lib および images フォルダーが見つからないことがわかります。これらのフォルダーのエントリを build.properties ファイルに追加する必要があります。また、ライブラリをクラス パスに追加する必要があります (追加のクラスパス エントリ)。これらの変更を行った後にプラグインをビルドすると、理想的には機能するはずです。

于 2013-10-14T10:17:51.347 に答える