作成日:2008/12/12
Mac OS X 10.5.4 Eclipse SDK 3.3.2 Pleiades 1.2.3p10


Eclipse プロジェクトの新規作成  掲載記事一覧
1 新規プロジェクト作成ウィザードの作成 Eclipseへの新規プロジェクト追加方法と、対応する新規プロジェクト作成ウィザードの実装方法
2 新規プロジェクトをカテゴリ分けする 新規プロジェクトをカテゴリ分けして追加する方法
3 新規プロジェクトファイル作成 新規プロジェクト作成ウィザードの内容に従い、実際にプロジェクトファイルを生成する方法
4 プロジェクトの特徴付け(Natureの付与)を行う ネーチャーでプロジェクトを区別できるようにする方法
5 プロジェクトに任意のアイコンを重ねて表示 ラベル装飾を利用してプロジェクトに任意のアイコンを重ねる方法

1.プロジェクトファイルの作成について

ここでは、新規プロジェクトをファイルシステム上に実際に作成し、Eclipse のパッケージ・エクスプローラー上に表示させる方法を紹介します。

掲載記事一覧 1、2 の手順にしたがって新規プロジェクト作成ウィザードが実装され "SampleProject" という名前で登録されていることを前提としています。その中で新規プロジェクトを作成するために 「WizardNewProjectCreationPage」 を使用したので、この新規プロジェクト作成ページを使用て新規プロジェクトを作成することにしました。

手順作成にあたって、 Mac OS X 10.5.4 上にインストールした Eclipse 3.3.2 を使用しています。 Eclipse は Pleiades 1.2.3p10 をつかって日本語化しています。環境が異なると表示や手順が異なってくる場合もありますのでご注意ください。

2.新規プロジェクト作成準備

2-1.依存関係の追加

依存関係の追加新規プロジェクトの作成には、org.eclipse.core.resource を依存関係に追加しておく必要があります。これを追加することで、これからでてきますが org.eclipse.core.resources.IWorkspaceRoot インタフェースや org.eclipse.core.resources.ResourcesPlugin、 org.eclipse.core.resources.IProject クラス等を使用できるようになります。

プラグイン・プロジェクトの "META-INF/MANIFEST.MF" ファイルを開き下側にタブから「依存関係」タブを選択します。 「追加」ボタンを押してダイアログから 「org.eclipse.core.resources」 を選択して「OK」ボタンを押します。

3.プロジェクトの作成場所

3-1.プロジェクトを作成できる場所

Eclipse では最初に「ワークスペース」という作業場所を指定し、その中に作業ファイルやプロジェクトの管理情報などを格納していきます。プロジェクトも基本的にはワークスペース内に作成しますが、ワークスペース外の任意の場所に作成することもできます。この場合もプロジェクトはワークスペースで管理されているが実体はワークスペース外という扱いになります。

プロジェクト入力例今回サンプルで使用する 「WizardNewProjectCreationPage(サンプル・プロジェクト)」 は Eclipse標準 のプロジェクト作成ページなので、ワークスペース内外どちらでも指定することができます。

3-2.プロジェクト情報の取得方法

WizardNewProjectCreationPage の話になりますが、新規プロジェクト作成ウィザードで「OK」ボタンを押したタイミングでプロジェクトファイルを作成したい場合、ウィザードクラスの performFinishメソッド 内にコードを記述していきます。

page変数は WizardNewProjectCreationPageのインスタンスだとすると、プロジェクト名は以下で取得できます。

// 入力されたプロジェクト名を取得
String name = page.getProjectName();

基本はワークスペース内にプロジェクトを作成しますが、「Use default location」のチェックを外すことで「Location」でワークスペース外のディレクトリを指定できるようになります。 このチェックされていなかった場合のLocationは以下で取得できます。

// デフォルトのロケーションを使用するチェックを外していた場合、入力されたロケーションを取得
URI location = null;
if (!page.useDefaults()) {
  location = page.getLocationURI();
}

4.プロジェクトファイルの作成

ここから、新規プロジェクトのファイルを作成する手順に入っていきます。

4-1.ワークスペースの取得

まずはワークスペースを取得します。次のようにして実行時のワークスペースを取得します。

// ワークスペースを取得
IWorkspace workspace = ResourcesPlugin.getWorkspace();

次にワークスペースからプロジェクトのハンドルを取得します。

// ワークスペースのルートからプロジェクトのハンドル(新規ハンドル)を取得
IWorkspaceRoot root = workspace.getRoot();
IProject project = root.getProject(name);

ここでは第3項で取得したプロジェクト名を渡してIProjectを取得しています。この時点ではプロジェクトファイルはまだ作成されていません。このハンドルを使用してプロジェクト作成の準備を進めていきます。

4-2.プロジェクト詳細情報の作成

プロジェクトの詳細情報にあたる ProjectDescription を定義して、これから作成するプロジェクトファイルの作成場所を設定します。

// プロジェクトの詳細情報を作成し、プロジェクトのロケーションを設定
// ロケーション設定は新規のプロジェクトにのみ有効。nullを指定した場合はデフォルトロケーション
final IProjectDescription description = workspace.newProjectDescription(name);
description.setLocationURI(location);

ワークスペースから、プロジェクト名を引数に ProjectDescription オブジェクトを作成します。続けて、作成した ProjectDescription にプロジェクトを作成するパスを設定します。ワークスペース内にプロジェクトを作成したい場合は null を指定します。

4-3.プロジェクトファイルの作成

いよいよ ファイルシステム上にプロジェクトファイルを作成します。

// プロジェクトを詳細情報を指定して作成
project.create(description, null);

プロジェクトハンドルの createメソッド を呼び出すことでプロジェクトが作成できます。

第一引数は ProjectDescription で、作成するプロジェクトの情報を明示できます。第二引数は IProgessMonitor を渡すことで進捗状況を表示できますが別の機会に紹介します。 ProgressMonitor を使用しない場合は null を渡しておけば問題ありません。ProjectDescription 引数は省略もでき、ワークスペースにプロジェクトを作成するだけなら project.create(null) だけでも実装できます。

ここまでで、プロジェクトファイルが作成されますが、パッケージ・エクスプローラ(Package)上で  の様に閉じられた状態となっています。作成したプロジェクトはこれから使うプロジェクトなのでオープンしておくのが親切です。

// 作成したプロジェクトをオープン
project.open(null);

このプロジェクトの作成とオープンではCoreException という例外を補足する必要があります。これはEclipseプラグイン開発でよく見る例外ですが、これについても別の機会に紹介します。

以上で新規プロジェクトファイルの作成は完了です。
今回作成した新規プロジェクト作成ウィザードクラスを添付しておきます。  SampleWizard.java 

参考文献