【问题标题】:set runtime to a IFacetedProject将运行时设置为 IFacetedProject
【发布时间】:2012-06-16 10:42:51
【问题描述】:

我编写了一个 Eclipse 插件,它使用来自 Eclipse WTP 的 API 创建一个新的“EAR 应用程序项目”。我在为这个新项目设置“运行时”值时遇到了一些困难。

当我使用 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>

但是在创建 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);

我做错了吗?

【问题讨论】:

    标签: eclipse runtime rcp eclipse-wtp pde


    【解决方案1】:

    要设置固定面,您需要使用 IFacetedProjectWorkingCopy.setFixedProjectFacets() 方法。

    要设置运行时,您需要使用 IFacetedProjectWorkingCopy.setTargetedRuntimes() 方法。您可以通过 RuntimeManager API 定位 IRuntime 实例,例如 getRuntimes() 或 getRuntimes(name)。

    【讨论】:

    • 太棒了!有用。但是当我将它作为 Junit Plugin Test 运行时,不会加载相同的运行时。我认为 JUnit 不加载所需的包。您是否知道在使用 JUnit 插件测试运行时识别该运行时(在我的情况下为 Glassfish 3.1.2)需要什么?谢谢 Komissarchik 先生。
    猜你喜欢
    • 1970-01-01
    • 2015-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 2010-11-05
    • 2011-04-30
    • 2011-11-18
    相关资源
    最近更新 更多