2012-04-02 9 views
4

2つのソースフォルダを持つプロジェクトをセットアップしています。 Folder1は私が触れたくないJavaソースファイルの自動生成されたセットで、Folder2はこれらのファイルのいくつかを少し編集したフォルダです。Eclipse - 他のソースフォルダから自動的に生成されたソースを上書きする

私は、Folder2に編集されたファイルがある場合、Folder1からファイルを無視することをコンパイラに任せます。

Eclipseで「タイプXは既に定義されています」エラーをオフにする方法を見つけようとしましたが、設定の[エラー/警告]の下に見つかりませんでした。私はこのエラーをオフにすると、順序を正しく設定すると、コンパイラは、2つの正しいファイルを使用するようになります。

明らかに、Folder1のすべての重複をビルドパスから手作業で除外しています。必ずしもセットアップを修正する必要はありませんが、これを設定するより良い方法があれば、お気軽にお勧めします。どんなことが起こったとしても、すべてのソースは、私が解決できないパスの複雑さのために、同じbinフォルダになければなりません。可能であれば、ビルドスクリプトを明確にしたいと思っています。

+0

特定のファイルを選択してビルドから除外することができます。 –

+0

ええ、それは私が "手ですべてのファイルを除外したくない"という意味です –

+0

ああ。私は逃しました。私の悪い –

答えて

1

2つのプロジェクトを作成することができます。 prj1にはFolder1のみがあり、 にはprj2にはFolder2のみがあります。 prj1はprj2に必要なプロジェクトとしてリストされています。そうすると、Folder2のソースはFolder1のソースを上書きします。

1

私にこの種の問題が発生したとき、私はSVNを使用して、私は慎重に新しいブランチを作成し、それに取り組んでいます。

この後、複雑なパターンを移行するのはあなた次第です。

Dave Newtonが言ったように、プロジェクトが壊れていると考えることができます。これは、保存するのに役立ちます。あなたの要件については

+0

ここでの主な問題は、アプリのバージョンごとに「Folder1」のものが自動的に生成され、再生成されることです。私は、SVNセットアップがどのように動作し、それを考慮しているかを見ることができますが、生成されたソースが各リリースを変更すると、基本的にすべてのファイルをコミットする必要があり、これは壊れたプロジェクトからほんの少しのステップアップです。良い答えはありますが –

+0

確かに関係するプロジェクトには正確ではありませんが、それぞれの再生成されたFolder1の後にブランチで*マージ*することができます。 HTH –

1

:あなたは、アプリケーションがファイルを更新すると

a RO mount that contains your original file set 
a RW mount that initially contains nothing 
an overlay/union mount for use by an application 

が存在するオーバーレイ/共用ファイルシステムを必要とする

...ignore files from Folder1 if there is an edited file in Folder2... 

は、ファイルシステムはにファイルを保存しますRWの場所。同じ名前のファイルがRWの場所に存在すると、ファイルシステムは常にROの場所にファイルを隠します。

最初はコンセプトが奇妙に聞こえます。

詳細については、「オーバーレイファイルシステムとは何か」と「ユニオンファイルシステムとは何か」をご覧ください。

+0

もちろん、これはEclipse内でここでやろうとしていることです。あなたのアイデアは面白いですが、コードプロジェクトで実際には動作しません。バージョン管理で使用できるものではないからです。あなたが記述する機能は、私がEclipseで達成しようとしているものです。 –

関連する問題