检测到Eclipse插件但未加载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了检测到Eclipse插件但未加载相关的知识,希望对你有一定的参考价值。

我正在编写一个使用JDT的compilationParticipant扩展点的插件。该插件现在无法正常工作,我试图找出原因。

我有一个CompilationParticipant

public class CompParticipant extends CompilationParticipant {

    private static CompParticipant instance = null;    
    private CompParticipant() {
        super();
        Activator.log("CompilationParticipant initialized");
    }

   public CompParticipant getSingleton() {
        if (instance == null)
            instance = new CompParticipant();
        return instance;
    }

    @Override
    public void buildStarting(BuildContext[] files, boolean isBatch) {
        Activator.log("Build Starting");
    }
}

还有一个(不是懒惰的)Activator

public class Activator extends Plugin implements BundleActivator {

    private static Activator instance;
    public static String PLUGINID = "myplugin";

    public Activator() {
        super();
        log("Activator");
    }

    public static void log(String msg) {        
        if (instance == null)
            instance = new Activator();
        instance.getLog().log(new Status(Status.WARNING, PLUGINID, 1, msg, null));
    }

    @Override
    public void start(BundleContext context) throws Exception { log("Start"); }

    @Override
    public void stop(BundleContext context) throws Exception {}

}

在我的清单中,我指定:

Bundle-Activator: myplugin.Activator

在我的plugin.xml中,我指定:

<extension point="org.eclipse.jdt.core.compilationParticipant">
  <compilationParticipant class="myplugin.CompParticipant" id="myplugin" createsProblems="true">
  </compilationParticipant>
</extension>

我将插件导出到存档并将内容放在dropins文件夹中。当我启动Eclipse时,我在安装细节>配置部分*** Plug-in Registry中看到: myplugin (1.0.0) "My Plugin" [Installed]

但是,不会在错误日志(或控制台)中打印日志消息。我的日志记录不正确或为什么我的插件无法运行?

答案

重新阅读这个问题,以下看起来与我不一致:

  • 不应手动实例化激活器,但框架应该为您执行此操作。
  • 对于框架的实例化,激活器需要一个公共的无参数构造函数。 为了支持单例访问,激活器通常从构造函数或this方法中保存start()
  • 要让类加载触发器包激活,该包应该声明Bundle-ActivationPolicy: lazy

当所有这些都得到纠正后,构建器应该能够实例化您的CompilationParticipant(从扩展声明中读取)。然后,此实例化应激活您的包并启动激活器。

以上是关于检测到Eclipse插件但未加载的主要内容,如果未能解决你的问题,请参考以下文章

导出eclipse可部署插件和片段时出错

Jacoco和Tycho surefire的Eclipse RCP插件代码介绍

Eclipse 侦听器检测何时打开新视图?

Eclipse 插件片段

需要从eclipse插件代码访问JavaFX

Cookie 已设置但未检测到