« ビルドの種類 | トップページ | 進捗状況のダイアログ表示 »

2004.04.06

ビルダーの起動

あるワークスペースに存在する全プロジェクトに対して,またはあるプロジェクトに対して,それが持つビルダーをプラグインから起動することができる。今回は,ビルダーをプラグインのプログラム内から実行する方法を紹介する。

まずはあるワークスペースに所属する全プロジェクトに対してビルダーを実行する方法から取り上げよう。ワークスペースに対してビルダーの起動を指示するには,IWorkspaceインタフェースのbuildメソッドを使用する

  try {
    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    workspace.build(
      IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
  } catch(CoreException e) {
    // ビルド失敗処理
  }

まず,ResourcesPluginクラスのgetWorkspaceメソッドで,ワークスペースのオブジェクト(IWorkspaceオブジェクト)を取得する。その後,IWorkspaceオブジェクトのbuildメソッドを呼び出すことで,ワークスペースが持つ各プロジェクトに対してビルダーが実行される

buildメソッドの引数は2つ。第1引数はビルドの種類を表す定数値(INCREMENTAL_BUILDまたはFULL_BUILDのどちらか)を指定する。第2引数はビルドの進捗状況を表示するためのIProgressMonitorオブジェクトを指定する。上記のように第2引数にnullを指定した場合は,進捗状況を表示するためのダイアログは表示されず,ビルド作業のキャンセルもできない

次に,ある1つのプロジェクトに対しての話に移る。ある1つのプロジェクトに対してビルド作業を指示するには,IProjectインタフェースのbuildメソッドを使用する。

  try {
    IProject project = ...;
    project.build(
      IncrementalProjectBuilder.INCREMENTAL_BUILD, null);
  } catch(CoreException e) {
    // ビルド失敗処理
  }

最初に,何らかの手順でビルド対象のプロジェクトのオブジェクト(IProjectオブジェクト)を取得する。その後,IProjectオブジェクトのbuildメソッドを呼び出すことで,そのプロジェクトが持つビルダーの処理が実行される。buildメソッドの引数は,IWorkspaceインタフェースのbuildメソッドの時と同じである。

上記2つのbuildメソッドは,どちらも(ビルド作業が失敗するしないに関わらず)すべてのビルダーが実行される。そしてすべてのビルダーのビルド処理が終了したときに,ひとつでもビルド作業に失敗が生じていた場合はCoreException例外がスローされる。この場合のCoreException例外オブジェクトには1つ以上の複数のビルド失敗に関する情報が格納されている。これについては「マルチ・ステータス」を参照されたし。

|

« ビルドの種類 | トップページ | 進捗状況のダイアログ表示 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/12631/403330

この記事へのトラックバック一覧です: ビルダーの起動:

« ビルドの種類 | トップページ | 進捗状況のダイアログ表示 »