web-dev-qa-db-ja.com

Eclipseはリソースを自動的に更新できますか?

Eclipse(3.4.2 with PyDev)は、非同期リソース(IDEの外部で編集されたファイル)を、私が使用した他のIDEとは異なる方法で処理します。エディターが開いているリソースのみが非同期と見なされます。 Eclipseでは、すべてのリソースが同期しなくなる可能性があります。

つまり、Eclipse以外でファイルが変更された後に検索を実行すると、開いているエディターがない場合でも、ファイルが同期していないことを示すエラーダイアログが表示されます。私が知る限り、グローバルリフレッシュコマンドはありません。そのため、エラーダイアログでプロジェクト名(複数のプロジェクトがあります)を読み取り、各プロジェクトに対して右クリック+リフレッシュを実行する必要があります。

Refresh AutomaticallySettings > General > Workspace設定を確認しましたが、これは効果がありません。 Eclipseに常に非アクティブリソースをディスクからロードさせる方法はありますか?

154
DNS

この問題はEclipse 3.7(Indigo)で修正される予定です。 「Refresh Automatically」は最終的にリソースを同期状態に戻しますが、リフレッシュフックはWindowsにのみ存在するため、LinuxおよびMac OSではポーリングする必要があります定期的にファイルシステム。

3.7から、新しい設定Settings > General > Workspace > Refresh On Access(ライトウェイトリフレッシュ)が追加されました。この設定により、リソースが「非同期」であることが検出されると、Eclipseはリソースを自動的に更新します。ファイルを開く、読み取る、または検索するときに、非同期エラーの発生を防ぎます。

参照: https://bugs.Eclipse.org/303517

195
James Blackburn

プロジェクトエクスプローラでプロジェクトノードをクリックしてF5キーを押すか、右クリックして[更新]を選択すると、そのプロジェクトのすべてのリソースが更新されます。また、複数のプロジェクトをCtrlキーを押しながらクリックすると、複数のプロジェクトを同時に更新できるはずです。

プロジェクトを1回クリックし、Ctrl + Aキーを押してすべてを選択します。F5キーを押すと、必要な処理がすべて実行され、すべてが更新されます。

機会があればこれをテストする必要がありますが、これは過去に同様の問題を克服した方法だと思います。


私は、この答えが日常的に下票されていることに気づきました。この質問は、Eclipseの特定のバージョンに言及していることを指摘したいと思います:3.4.2。実際には、非同期リソースを更新する自動メソッドはありませんでした Eclipseのバージョン3.7 Indigoまで 、前述のとおり James Blackburnの答え 。この回答で説明されている方法は、バージョン3.4.2(および3.7 Indigoより前のその他のバージョン)でこれを達成する唯一の方法です。

28
Thomas Owens

Eclipse IDEでは同期の問題がよくあるため、このオプションウィンドウ->設定->ワークスペース->ネイティブフックまたはポーリングを使用して更新する必要があります。

16
DON

Java 7にはファイルシステムフック用のAPIがあるため、Eclipseでは更新をより適切に処理できると考えられます。

編集:実際には、このメカニズムを使用するプラグインがあります: https://github.com/psxpaul/EclipseJava7Refresher

4
bronsted

Eclipse Heliosには、Preferences> General> Workspaceに組み込みの更新機能があります。自動ビルドを無効にするのと同じ場所にあります。自動的に更新を選択します。同じ機能を持つプラグインは、Andrei LoskutovのFilesyncプラグインです。更新サイトのアドレス: http://andrei.gmxhome.de/Eclipse/ 。インストール中に、Eclipse 3.5-3.7プラグイン> FileSyncを選択します。

4
user466206

グローバルリフレッシュがあります-パッケージエクスプローラーで何も(またはすべて)選択されず、F5を押します(または空のスペースを右クリックして[リフレッシュ]を選択します)。もちろん、大規模なプロジェクトがある場合、これにはかなり時間がかかります。

4

おそらく、Eclipseサイトで機能要求を追加する必要があります。

https://bugs.Eclipse.org/bugs/

期限切れのリソースを自動的に更新する設定を追加することは素晴らしい考えだと思います。

3
David

グローバルリフレッシュは、プラグインやワークスペース内のすべてのプロジェクトを選択することなく、プレーンなEclipseに実際に存在します。

基本的に、プロジェクトエクスプローラーですべての選択を解除し、F5を押す必要があります。これを行うには、プロジェクトエクスプローラーで選択したリソースをCtrlキーを押しながらクリックし、F5キーを押します。

Eclipseでグローバルリフレッシュが実際に欠落しています。すべてのプロジェクトを選択してから更新(F5など)を実行する上記の手順は、選択に含まれるプロジェクトを閉じている場合は機能しません。つまり、私のように多くのプロジェクトの1/2を閉じた場合、Ctrlキーを押しながら多数のプロジェクトを手動でクリックすることになります。これは非常に痛いです。 Eclipseが閉じられたプロジェクトを単に無視することを望みます。

3
Karol

はい、Refresh on Accessは長い間期限切れです。これに対する回答および同様の問い合わせは、通常、グローバルな自動更新を有効にすることを提案しました。実際、Refresh on Accessは元の(<3.x)デフォルトの動作であるはずだと言う人がいます...

2
MikeW

空のバッチファイルを実行する新しい「外部ツール」実行構成を作成することで、この問題を解決することができました。実行構成では、完了時にワークスペースを更新することができます。次に、Practically Macroを使用して、1)最後の外部ツールの実行構成を実行(ワークスペースの更新)、2)最後のデバッグの実行構成(アプリの実行)を実行するマクロを作成しました。 [コンソールの割り当て]をオフにすると、完了した外部ツールエントリはデバッグウィンドウに表示されません。

2
NateS

他の人によって提案されたソリューションが実際に正しい場合でも、Eclipse用の「 Refresh All 」プラグインがあります。 更新ページ を更新サイトのEclipseリストに追加して、IDEにインストールするだけです。

1
Romain Linsolas