2

これは、多くの「Eclipse の自動更新を行うにはどうすればよいか」という質問の 1 つではありません。私の問題は、それが完全ではないということです。

複数のプロジェクトを持つワークスペースでは、1 つのプロジェクトをコンパイルすると、他のプロジェクトでソース コードが生成されます (これらは純粋にこの目的のために存在し、手動で書かれたソース コードはありません)。ソースコードは、メインのコンパイル中に生成されます (つまり、カスタム ビルダーではなく、Scala コンパイラのプラグインですが、これは関係ありません)。

私がこれまでに行ったことは次のとおりです。

  1. 標準のビルダーの後にダミーのカスタム (ant) ビルダーを追加し、「選択したリソースを更新する」(生成されたプロジェクトのソース フォルダー) に設定します。

  2. また、同じものを更新する生成されたプロジェクトの標準 (Java) ビルダーの前に、ダミーのカスタム (ant) ビルダーを追加します。実際、ソース フォルダーだけ、プロジェクト全体、ワークスペース全体など、さまざまなバージョンを試してみましたが、結果は同じでした。これらの生成されたプロジェクトは、コンパイルによってソース コードが生成されるプロジェクトに依存するように設定されていることに注意してください。

  3. [ウィンドウ] -> [設定] -> [一般] -> [ワークスペース] で、[アクセス時に更新] に加えて [ネイティブ フックまたはポーリングを使用して更新] が有効になりました。また、「アクセス時に更新」を無効にしてみました(もう一方だけを残しました)。同じ結果です。

  4. Eclipse Indigo (3.7 SR2 20120216-1857) と Juno (4.2.2 M20130204-1200) で試しました。どちらも 64 ビット Windows バージョンです。追加のプラグイン、特に Scala IDE (Scala 2.9 と 2.10 の両方で Scala IDE 3.0.0 で終わる複数の異なるバージョン) がインストールされます。同じ結果です。

...そしてその結果、Eclipse は変更されたファイルを実際に認識します。上記の設定の最良の組み合わせが何であれ(忘れました)、以前は生成されていた一部のファイルがもはや存在せず、それらが消えることに気付くことさえできました(ただし、ツリーを折りたたんで再作成する必要がありました拡張しますが、F5 は必要ありません)。

ただし、以前は存在しなかった新しいファイルが作成されたことを自動的に検出することはありませんでした。私の場合、コンパイルエラーも発生します(検出された変更されたファイルが変更されたため、新しいファイルのコードを参照しているため、気付かないためです)。

シンプルな F5 で問題は解決しますが、この環境を他の開発者に広めようとしているので、私は死んでいます。 ...」。

これがEclipseではまだ不可能である可能性はありますか? (直接的な解決策ではないにしても)役立つプラグインを知っている人はいますか?

コメントで指摘したように、新しいフォルダー (Java パッケージ) の検出も問題ないようです。既存のフォルダー内の新しいファイルのみ。

ありがとう!

アップデート

私が行ったすべてのリフレッシュの中で、私は以前は気がつかなかったことに気づきました.

  1. コード生成を引き起こすプロジェクトに変更を加えます(以前に消えたファイルの再表示が問題であるかどうかをテストしようとしていました)。今回は、生成されたソース ファイル (Java クラス) の名前も変更される 1 つのメソッドの名前を変更しただけです。
  2. 「自動的にビルド」が有効になっているため、Eclipse がビルドを開始します。非常に迅速にエラーを発見し、それについて不平を言います - 変更された生成されたクラスの 1 つが、Eclipse がまだ認識していないクラスを参照している (リフレッシュが不完全であるため - 変更されたファイルを見たが、存在しないファイルがそこにあるとまだ信じている)新しいファイルが表示されませんでした)。
  3. ビルドは実際に続行されます。進行状況は上下し、何度も現れたり消えたりして、他の依存プロジェクトを構築します。エラーは常に、変更されたクラスのパッケージ エクスプローラーに表示され、マークされます。
  4. ビルドが完了したように見えた後 (数分後にそのエラーが表示されます)、更新が完了します (!!!)。パッケージ エクスプローラーが更新され、古いファイルが消え、新しいファイルが表示され、エラーが表示されなくなります。当初、これはウィンドウを切り替えてそのように更新をトリガーしたことが原因であると考えていましたが、最後に何も触れていないことを確認しました-変更を加えただけですCtrl+S を押して保存しました。

これは、「状態」がそれほど悪くないことを意味している可能性があります (非常に忍耐強く、鋼のような神経を持っている必要があります)。さらに調査中。同じことをしている、またはしている可能性のあるすべての人に感謝します!問題は、最初のリフレッシュが不完全であるのに、なぜ 2 つのリフレッシュがあるのか​​ということです。

4

0 に答える 0