Java 与Maven/Tycho的执行问题
我有一个基于3.xapi的eclipsercp应用程序。我的应用程序由几个透视图组成,每个透视图都包含几个视图和编辑器。第一个透视图从应用程序启动时开始,导航视图在主插件中定义。问题在于其他透视图中的视图是在不同的插件中定义的,以便更好地维护代码。 我使用透视图扩展和以下代码在主插件中添加视图:Java 与Maven/Tycho的执行问题,java,eclipse,maven,eclipse-rcp,tycho,Java,Eclipse,Maven,Eclipse Rcp,Tycho,我有一个基于3.xapi的eclipsercp应用程序。我的应用程序由几个透视图组成,每个透视图都包含几个视图和编辑器。第一个透视图从应用程序启动时开始,导航视图在主插件中定义。问题在于其他透视图中的视图是在不同的插件中定义的,以便更好地维护代码。 我使用透视图扩展和以下代码在主插件中添加视图: public class Perspective implements IPerspectiveFactory { public void createInitialLayout(IPageLayo
public class Perspective implements IPerspectiveFactory {
public void createInitialLayout(IPageLayout layout) {
layout.addView(NavigationView.ID, IPageLayout.TOP,
IPageLayout.RATIO_MAX, IPageLayout.ID_EDITOR_AREA);
}
}
奇怪的是,当我在eclipse中运行应用程序时,所有这些都可以完美地工作,但一旦我使用Maven/Tycho构建并执行创建的应用程序,插件中定义的所有透视图就不再工作了。
问题是当我添加一个新的透视图时,这个透视图会打开,但它不包含任何视图,只是一个灰色背景。
为了调试的目的,我已经添加了一些println()
语句,并且似乎从未调用包含视图的相应插件的Activator
。这也解释了为什么我在透视图中看不到任何视图,因为应用程序找不到在相应插件的视图扩展中定义的相应视图。
我从上面向我的createInitialLayout
方法添加了以下println()
语句:
System.err.println(layout.getViewLayout(NavigationView.ID));
输出为null
,这加强了我前面的观点
现在的问题是,原因可能是什么?为什么我的插件不能启动?
我还做了另一个实验,我直接调用了插件中定义的一个方法,再次没有调用插件的Activator
。
插件的Bundle ActivationPolicy
设置为lazy
。
有什么建议我下一步可以追踪问题吗
Maven/Tycho不报告任何问题,我对eclipse和Maven/Tycho使用相同的目标平台,因此我还可以排除任何依赖性问题
我非常感谢您的帮助/支持:)
致以最良好的祝愿,
Tom你试过使用标准的eclipse产品导出功能吗?@AlexanderGavrilov我刚试过,依赖项确实有问题。。。但是我不知道如何解决这个依赖错误。。。我已经检查了目标平台,但对我来说,似乎所有必需的捆绑包都在那里。您的产品配置是如何组织的?基于插件还是基于功能?你确定你已经把所有的东西都包括进去了吗?您的workspace.metadata/.log文件中是否存在任何错误?您是否已将plugin.xml添加到build.properties中,类似这样:
bin.includes=META-INF/,\,\plugin.xml\src/main/resources
@AlexanderGavrilov我的产品基于功能,我的工作区中没有任何错误。。。奇怪的是,我可以在eclipse中执行产品,并且它可以按预期工作。。。当我在运行配置下验证插件时,它显示没有检测到任何问题。。。my build.properties的内容如下所示:bin.includes=META-INF/,\plugin\u customization.iniTry将plugin.xml添加到build.properties中,并查看是否有帮助。