我正在尝试使用片段项目扩展第三方Eclipse插件。主要原因是第三方插件包含具有默认(包)修饰符的类,我需要扩展它们。
因此,我的扩展类必须位于完全相同的包中。我创建了一个包含相同包的片段项目,并将我的类放入其中。当我使用运行时工作区时,一切正常。
但是,如果我尝试部署我的片段(例如,将其部署到我的Eclipse发行版的dropins文件夹中),我将无法执行代码。扩展和类似的东西工作正常(例如,我使用扩展为新的运行配置。但是,如果我尝试实例化此运行配置,我收到一条错误消息,第三方根插件无法将类加载到显示我的配置选项卡组。
有这种问题的经验吗?
答案 0 :(得分:1)
抱歉,但这不起作用。除非主机包是专门为它制作的,否则不能从片段中覆盖主机中的类。原因是资源 - 包括类 - 在任何片段之前从主机中检索。
请参阅org.eclipse.osgi.baseadaptor.loader.ClasspathManager
了解实施情况。
答案 1 :(得分:0)
实际上,这是我正在使用的扩展码:
<extension point="org.eclipse.debug.ui.launchConfigurationTabGroups">
<launchConfigurationTabGroup
class="com.android.ide.eclipse.adt.internal.launch.jouleunit.AndroidJouleUnitTabGroup"
id="com.android.ide.eclipse.adt.jouleunit.AndroidJouleUnitLaunchConfigTabGroup"
type="com.android.ide.eclipse.adt.jouleunit.launchConfigurationType">
</launchConfigurationTabGroup>
当然,还有进一步的扩展定义了启动配置类型等,但这是Eclipse无法找到的类。
答案 2 :(得分:0)
实际上我现在为自己找到了问题。问题是错误配置的构建属性文件,它从我的片段JAR中排除了Java字节代码。非常痒,因为类在JAR中但在一个错误的子目录中。