0

Eclipse WTP の API を使用して、新しい「EAR アプリケーション プロジェクト」を作成する Eclipse プラグインを作成しています。この新しいプロジェクトの「実行時」の値を設定するのにいくつか問題があります。

これは、(「通常の」ユーザーとして) Eclipse GUI を使用して同じプロジェクトを作成したときの「org.eclipse.wst.common.project.facet.core.xml」の内容です。

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <runtime name="GlassFish 3.1.2"/>
  <fixed facet="jst.ear"/>
  <installed facet="jst.ear" version="6.0"/>
  <installed facet="sun.facet" version="9"/>
</faceted-project>

しかし、(WTP プラグインから提供された API を使用して) ファセット プロジェクトを作成するときに、EAP プロジェクトに次の値を設定する方法が見つかりません。

  <runtime name="GlassFish 3.1.2"/>
  <fixed facet="jst.ear"/>

以下は、このプロジェクトをプログラムで作成したときに書き込まれるのと同じ XML です。

<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
  <installed facet="jst.ear" version="6.0"/>
  <installed facet="sun.facet" version="9"/>
</faceted-project>

このプロジェクトを作成する方法は次のとおりです。

        IFacetedProject facetedProject = ProjectFacetsManager.create("prj1", new Path(prj), null);
        IFacetedProjectWorkingCopy workingCopy = facetedProject.createWorkingCopy();

        IProjectFacet jstFacet = ProjectFacetsManager.getProjectFacet("jst.ear");
        IProjectFacet sunFacet = ProjectFacetsManager.getProjectFacet("sun.facet");

        IProjectFacetVersion defaultJstFacet = jstFacet.getDefaultVersion();
        IProjectFacetVersion defaultSunFacet = sunFacet.getDefaultVersion();
        workingCopy.addProjectFacet(defaultJstFacet);
        workingCopy.addProjectFacet(defaultSunFacet);
        workingCopy.commitChanges(null);

私は何か間違ったことをしていますか?

4

1 に答える 1

0

固定ファセットを設定するには、IFacetedProjectWorkingCopy.setFixedProjectFacets() メソッドを使用する必要があります。

ランタイムを設定するには、IFacetedProjectWorkingCopy.setTargetedRuntimes() メソッドを使用する必要があります。getRuntimes() や getRuntimes( name ) などの RuntimeManager API を介して IRuntime インスタンスを見つけることができます。

于 2012-06-13T15:05:15.970 に答える