2

次のシナリオ:

Eclipse プロジェクトに1 つのルート フォルダーを使用したいと考えています。私が見たので、そのEclipseはマルチユーザーワークスペース(同じワークスペースで同時に多くのユーザー)をサポートしていないため、別のソリューションを探していました。

ランダムに、デフォルトの場所ではなく、ワークスペース外の場所 (すべてのクライアントが独自のワークスペースを取得する) で「新しいプロジェクト」を作成しました。

Eclipse は{workspace}/.metadata/.plugings/org.eclipse.core.resources/.projects/の下に生成されます

プロジェクトの場所に関する情報とその他のデータ (.safeable、.tree) のみを保持するフォルダー。そのため、プロジェクトの名前を変更すると、他のクライアントのプロジェクトが自動的に更新されます。ほとんどの場合、それほど悪くはありません。

私の質問: 私はそれで気分が悪い. ソースコードからこれらの「リンクされたプロジェクト」を作成するには、「内部パッケージ」を使用する必要があります。これが適切な動作であるかどうかはわかりません。

それで、一部のユーザーがEclipseアプリケーションでバイナリデータを共有する必要があるシナリオをどのように処理しますか. SVN と .git は、バイナリ ファイルにあまり慣れていません。

提案をいただければ幸いです。ありがとう。

アップデート

どのように私は問題を解決しました:

すべてのユーザーは自分のワークスペースを持っています。それに加えて、「中央ワークスペース」があります。これは単なる通常のワークスペースですが、そこからユーザー ワークスペース内のすべての IProject がリンクされます。

独自のワークスペースの外にある IProject をリンクするためのソース コードを次に示します。

IProjectDescription description = null;
description = ResourcesPlugin.getWorkspace().loadProjectDescription(new Path(path +"/.project"));
IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(description.getName());
project.create(description, IProject.FORCE, null);
if (!project.isOpen()) {
    project.open(null);
}

このコードはWorkspaceJob で実行する必要があります。

その後、実際にはワークスペースに配置されていない IProject を無制限のユーザーで操作できます。その場合、内部パッケージは使用しません。

4

1 に答える 1

2

プロジェクトの共有は Eclipse で可能ですが、留意すべき重要な点がいくつかあります。

Eclipse は、他の誰かがプロジェクト内のファイルを変更することを想定していません。これは、コンパイラがプロジェクトに割り当てられている場合に特に当てはまります。Java プロジェクトがある場合、Java コンパイラがあり、他の誰かが出力フォルダー内のファイルを変更すると、このコンパイラは非常に混乱します。コンパイラ/ビルダーを含むプロジェクトを共有しないでください。

もう 1 つの解決策は、バイナリ データをファイル システム上の共有の場所に配置し、リンクを使用してプロジェクトにインポートすることです。リンクされたリソースの作成のオンライン ヘルプを参照してください。これはファイルをコピーするのではなく、リソースをビューに表示するだけです。

したがって、このアプローチは、ファイルを表示する必要がある場合にはうまく機能しますが、プロジェクト内のコードがファイルにアクセスする必要がある場合 (単体テストなど) には役に立ちません。これらのリンクは純粋に仮想的なものであり、Eclipse UI にのみ存在するからです。

最後に、SVN と git はどちらもバイナリ データを完全に処理できます。チェックアウト/更新/コミット時に大量のメモリが必要になる場合がありますが、データが変更されない場合は、まったく問題ありません (データが 1GB を超えない限り)。

于 2012-08-06T10:12:10.400 に答える