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


161

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

これは、Eclipseの外部でファイルが変更された後に検索を実行すると、開いているエディターがない場合でも、ファイルが同期していないことを示すエラーダイアログが表示されることを意味します。私の知る限り、グローバルな更新コマンドはないので、エラーダイアログでプロジェクト名(いくつかのプロジェクトがある)を読み取って、それぞれを右クリックして更新する必要があります。

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


Eclipse 3.7以降の最新の回答が2番目の回答に含まれています。
Paul Verest 2013年

リモートシステムエクスプローラー(RSE)を使用してリモートファイルと同期することもできます
Christophe Roussy


@Boris、この質問は数年前に尋ねられました。他はの重複としてマークする必要があり、この 1。
Glenn Slayden 2017

回答:


199

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

3.7以降、新しい設定Settings > General > Workspace > Refresh On Access(別名Lightweight Refresh)があります。この設定により、Eclipseは、リソースが「非同期」であることを検出すると、リソースを自動的に更新します。ファイルを開いたり、読み込んだり、検索したりすると、非同期エラーが発生しなくなります。

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


61
これはオプションであることに心を揺さぶる。同期していないファイルを更新したことはありません。
ChristofferHammarström11年

18
:(私は長い間戦ったし、それオプション作りに対するハードあなたしている権利、それはクレイジーだ。。
ジェームズ・ブラックバーン

6
そして、このオプションをEclipse 3.8 / 4.2のデフォルトにする場合は、bugs.eclipse.org / 340977に投票してください。
James Blackburn

5
IntelliJ IDEAを使用します。ファイルは自動的に保存されるので、ファイルの保存について心配する必要はありません。うまくいきます。ディスク上のファイルが変更されると、IDEでも変更されます。競合がある場合は警告が表示され、差分を作成してマージできます。最悪の場合はローカル履歴があり、いつでも数分前に戻すことができます。
ChristofferHammarström

1
@ChristofferHammarström:Eclipseにもローカル履歴があります。ファイルエディターで右クリックし、[比較]> [ローカル履歴]を選択します。
ccpizza

28

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

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

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


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


13
選択した複数のプロジェクトのいずれかが閉じている場合、それらを更新しても機能しないことに注意してください。まず、閉じているプロジェクトの選択を解除する必要があります。または、パッケージエクスプローラービューまたはナビゲータービューでプロジェクトが選択されていないときにF5キーを押すと、開いているすべてのプロジェクトが更新されます(Ctrlキーを押しながらクリックして選択を解除し、空のスペースをクリックしても機能しません)。
トムクリフト2010

71
誰にとっても害はありませんが、Eclipseに何かを自動的に行わせる方法についての質問への回答として受け入れられるのは、なぜ手動で行う方法の説明なのでしょうか。
Srekel

9
@Srekel投稿の時点で、これは@DNSがやりたいことを行う唯一の方法でした。@James Blackburnのより最近の回答に基づくと、この質問が最初に投稿された後、実際に報告および修正された問題がありました。最近のバージョンのEclipseでは、この答えは正しくありません。ただし、質問は具体的にEclipse 3.4.2を引用しています。これは、質問で提示された問題を解決する方法です。
Thomas Owens、2011年

21

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


6
少なくともEclipse Mars以来、これは現在正しい答えだと思います。
Henno Vermeulen 2016

1
このチェックボックスは、Ubuntu 14.04のEclipse 4.5では機能しません。ファイルを外部から変更した後、Eclipseでこのファイルを開くか、更新を行うまで、Eclipseはそれを表示しません。.cssたとえば、Eclipseからサーバーアプリを実行しているときに外部エディターからこのファイルを更新した場合、ブラウザーはファイルの更新を認識しません。これを修正するために、チェックボックスを実際に機能させるこのプラグインを使用しました。この回答を参照してください。
Ruslan Stelmachenko 16

これはバージョンのNeon.3 Release (4.6.3)
有効な

MacのNeon.3では、このオプションは[設定]> [一般]> [ワークスペース]> [ネイティブフックまたはポーリングを使用して更新]にあります。
jmelvin 2018

5

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


自動ではありませんが、非常に効果的です(+1)。
loved.by.Jesus

5

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


4

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

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


プラグインをありがとう。これがないと、Ubuntu上のEclipseは、「ウィンドウ->設定->一般->ワークスペース->ネイティブフックまたはポーリングを使用して更新」が有効になっている場合でも、ファイルの外部変更を認識しません。
Ruslan Stelmachenko 2016

3

おそらくあなたは日食サイトに機能リクエストを追加する必要があります:

https://bugs.eclipse.org/bugs/

古くなったリソースを自動的に更新する設定を追加するのは素晴らしいアイデアだと思います。


3

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


3

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

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


2

はい、Accessでの更新は長い間遅れています...これと同様の質問への回答は、通常、グローバルな自動更新を有効にすることを提案しており、大規模なリモートプロジェクトには時間がかかる可能性があります。実際、Access on Refreshは元の(<3.x)デフォルトの動作であるはずだと言う人がいます...


2

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


1

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


2
これらのリンクをクリックすると、404が表示されます。プロジェクトはまだ生きていますか?
エランハレル2010

1
確かに、このプロジェクトは死んでいるようです:(
Romain Linsolas

1

以下のために起動するオプションがあり、自動的にリフレッシュのファイルが

Window -> Preferences -> General -> Startup and Shutdown -> Refresh workspace on startup

Eclipseを「新しく」開始するには、それをクリックしてください。:)

バージョン:Eclipse 4.12

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.