web-dev-qa-db-ja.com

Eclipseの.classpath / .projectファイルには何が含まれていますか?

最近、チームメンバーの1人のEclipseプロジェクトで問題が発生しました。 TomcatはアプリケーションのJARをデプロイしていませんでした。

最終的に、.classpath Eclipseファイルは、プロジェクトに問題がなかったチームメンバーと同じではないことに気付きました。 .classpathファイルを問題のないプロジェクトのファイルに置き換え、Tomcatのデプロイが完了しました。

好奇心から、そして何かが間違っている場合に将来何を見るべきかを知るために、.classpathおよび.projectファイルの中にあるもの。そこに追加できるもの、それはどういう意味ですか?

126
totalEclipse

Eclipseはプラグインのランタイム環境です。 Eclipseに表示されるほぼすべてのものは、Eclipse自体ではなく、Eclipseにインストールされたプラグインの結果です。

.projectファイルは、コアEclipseプラットフォームによって維持され、その目標は、プラグインに依存しない汎用のEclipseビューからプロジェクトを記述することです。プロジェクトの名前は何ですか?ワークスペース内の他のプロジェクトは何を参照していますか?プロジェクトをビルドするために使用されるビルダーは何ですか? (「ビルド」の概念は、特にJavaプロジェクトだけでなく、他のタイプのプロジェクトにも関係します)

.classpathファイルは、EclipseのJDT機能によって管理されています(feature =プラグインのセット)。 JDTは、プロジェクト内に複数のこのような「メタ」ファイルを保持します(プロジェクト内の.settingsディレクトリを参照)。 .classpathファイルはそのうちの1つです。具体的には、.classpathファイルには、プロジェクトを適切にコンパイルするためにJDT機能が必要とする情報が含まれています。プロジェクトのソースフォルダー(つまり、コンパイルするwhat)。出力フォルダー(コンパイルする場所to);クラスパスエントリ(ワークスペース内の他のプロジェクト、ファイルシステム上の任意のJARファイルなど)。

そのようなファイルをあるマシンから別のマシンに盲目的にコピーするのは危険です。たとえば、任意のJARファイルがクラスパスに配置されている場合(つまり、ワークスペースの外部にあり、絶対パス名で参照されるJARファイル)、.classpathファイルは移植不可になり、変更する必要があります。ポータブルである。 .classpathファイルの移植性を保証するために従うことができる特定のベストプラクティスがあります。

127
Isaac

.project

ワークスペースでプロジェクトが作成されると、プロジェクトを説明するプロジェクト記述ファイルが自動的に生成されます。このファイルの唯一の目的は、プロジェクトを自己記述的にし、サーバーに圧縮またはリリースされたプロジェクトを別のワークスペースで正しく再作成できるようにすることです。

.classpath

クラスパスは、プロジェクト内のどのJavaソースファイルとリソースファイルがJavaビルダーによって考慮されるかを指定し、プロジェクト外で型を見つける方法を指定します。 Javaビルダーは、Javaソースファイルを出力フォルダーにコンパイルし、リソースもそこにコピーします。

30
Rupesh Yadav

これらのファイルはさまざまなプラグインによって拡張可能であるため、これらのファイルの完全なリファレンスは利用できません。

基本的に、.projectファイルは、ビルダーやプロジェクトの性質の設定などのプロジェクト設定を保存し、.classpathファイルは実行中に使用するクラスパスを定義します。クラスパスファイルには、プロジェクト内のフォルダーに対応するsrcおよびターゲットエントリが含まれています。 conエントリは、JVMライブラリやEclipseプラグインの依存関係の場合など、ある種の「仮想」エントリを記述するために使用されます(通常のJavaプロジェクトの依存関係は、特別なsrcエントリを使用して異なって表示されます) 。

10
Zoltán Ujhelyi

このEclipseドキュメントには、.projectファイル内のマークアップの詳細があります。 プロジェクト記述ファイル

.projectファイルは次のように説明されています。

ワークスペースでプロジェクトが作成されると、プロジェクトを説明するプロジェクト記述ファイルが自動的に生成されます。このファイルの目的は、プロジェクトを自己記述的にすることです。これにより、圧縮された、またはサーバーにリリースされたプロジェクトを別のワークスペースで正しく再作成できます。このファイルは常に「.project」と呼ばれます

2
senpai