我正在编写一个使用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]
但是,没有日志消息被打印到错误日志中(或在控制台中)。是我的日志记录不正确,还是为什么我的插件无法运行?
答案 0 :(得分:0)
重新阅读该问题,以下内容与我不一致:
this
方法中保存start()
。Bundle-ActivationPolicy: lazy
所有这些都纠正后,构建器应该能够实例化CompilationParticipant(从扩展声明中读取)。然后,该实例化应激活您的捆绑软件并启动激活器。