问题标签 [eclipse-fragment]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 对于 Eclipse 片段项目,是否有等效于 BundleActivator 的工具?
我正在构建一个 Eclipse 插件,它在常规插件项目中提供一组核心功能。我通过片段项目提供的可选功能。但我需要片段在启动时向主插件注册。
我不能在片段项目中使用 Bundle-Activator。所以我想知道是否有一些替代机制来声明一个入口点或一些我可以挂钩的回调?
如果除了将片段项目转换为常规插件项目之外别无选择,是否有我需要注意的缺点?
这是我根据接受的答案使用的解决方案:
eclipse-plugin - 片段的内容在主机插件之外是否可见?
我以前从未使用过插件片段。我认为通过在片段中创建一个新类并在片段的清单中导出包含它的包,我将能够从另一个已经依赖于主机插件的插件访问该类。但是,我似乎无法完成这项工作。除了宿主插件之外,任何插件都可以看到片段的内容吗?如果是这样,我是否需要做一些特别的事情才能允许这样做?
eclipse-plugin - Eclipse PDE UI 功能导出,两个片段用于相同的操作系统,不同的架构
希望有一些 Eclipse PDE 大师在这里解决我无法解决的问题。
我正在尝试导出(通过 PDE UI)一个包含两个片段的功能,其中两个片段都针对相同的操作系统(例如,Linux),但具有不同的体系结构值(例如,x86 和 x86_64)。每个片段都有自己的几个 .so 库文件的副本,这些文件是在 Linux x86 或 Linux x86 64 位上构建的。例如:
使用相应的 delta 包导出托管功能以选择 linux (gtk/x86)或linux (gtk/x86_64),导出按预期工作。但是,当我选择BOTH平台时,导出失败并显示以下消息:
为什么我不能同时导出两个片段?我还有一个 Win32 x86 片段,我可以使用 linux X86 功能导出它,但它没有 .so 文件,而是具有相同文件标题的 .dll 文件(例如,lib1.dll、lib2.dll、lib3.dll)。
在两个基于 Linux 的片段中具有相同名称的 .so 库文件会导致此问题吗?
任何帮助都将不胜感激,因为这是我们构建过程的关键块(通过 UI 手动和无头)。
eclipse - 使用片段项目扩展 Eclipse 插件时类加载不起作用
我正在尝试通过使用片段项目来扩展第三方 Eclipse 插件。主要原因是第三方插件包含具有默认(包)修饰符的类,我需要扩展它们。
因此,我的扩展类必须位于完全相同的包中。我创建了一个包含相同包的片段项目并将我的类放入其中。当我使用运行时工作区时,一切正常。
但是,如果我尝试部署我的片段(例如,将其部署到我的 Eclipse 发行版的 dropins 文件夹中),我将无法执行代码。扩展和类似的东西可以正常工作(例如,我将扩展用于新的运行配置。但是,如果我尝试实例化此运行配置,我会收到一条错误消息,指出第三方根插件无法将类加载到显示我的配置选项卡组。
有遇到此类问题的经验吗?
java - Eclipse RCP:如何导出启动配置插件?
注意:这不是关于产品导出问题的任何问题的重复:我已经可以在 gui 和无头 pde 构建中成功导出。
我正在 Eclipse Indigo (3.7) 上开发 RCP 应用程序,该应用程序处于发布前的最后阶段。品牌产品在其自己的插件中是基于功能的,包括:
- myapp 主要(和独特的)功能
- org.eclipse.rcp
- org.eclipse.equinox.p2.feature
- org.eclipse.help
主要功能收集(包括)构成应用程序的所有插件以及来自 org.eclipse.rcp 和 org.eclipse.equinox.p2 功能的最低要求的插件集;它取决于 p2 自配置所需的插件以及我的应用程序运行所需的最少平台插件集。
然后我必须添加翻译,并将 eclipse-babel 的快照添加到目标。
这是这种情况:
- 我同步产品
- 我启动产品,生成新的启动配置
- --> 只翻译 GUI 的某些部分
- 我打开启动配置-插件选项卡-然后单击“添加所需插件”
- 包含的插件数量增加(从大约 130 个增加到大约 180 个)
- --> 现在当我启动应用程序时,所有内容都已翻译
所以我不得不在点击“选择需要”后手动复制启动中包含的片段,到功能包括(实际上只有包含翻译的片段)。那解决了它。
问题:有没有一种方法可以导出当前在启动配置中选择的插件列表?或任何其他将启动配置中包含的内容与功能中包含的内容同步的方法(不是相反)?
unit-testing - 我应该将 Eclipse 插件片段的测试代码放在哪里?
在搜索 Eclipse 插件的测试代码放置位置的最佳实践时,我发现了几篇文章。他们中的大多数都建议这样的片段
我有一个单一来源的插件,它有两个片段,一个用于 RCP,一个用于 RAP。
现在,如果我创建另一个片段进行测试,我将无法从测试片段访问 RCP 片段 API。
有一个 header Eclipse-ExtensibleAPI
,如果设置为 true ,主机插件将使其片段 API 可用。但它可用于其他需要它的插件,而不是它自己的片段(测试片段)。
谁能帮我解决这个问题?
eclipse - Eclipse 产品无法识别片段(未压缩)
我有一个包含插件和片段的 Eclipse 产品:
插件 A(产品主插件)
导出的插件(eclipse DROPINS 文件夹):
插件 B(插件 A 的依赖项)
片段 A(HOST=插件 B)-未压缩=资源
片段 B(HOST=插件 B)
问题:产品依赖项出错,因为片段 A 无法识别!它必须以 JAR 格式压缩才能被识别!
我不太明白这一点,因为如果 Plugin B 是 PRODUCT MAIN 插件,则可以识别任何未压缩的片段:
插件 B(产品主插件)
片段 A(HOST=插件 B)-未压缩=resources
片段 B(HOST=插件 B)
正如预期的那样,产品没有错误并且出口正常!
那么为什么插件 B不能作为另一个插件的依赖呢?
有什么解决办法吗?
java - Java 7u55 Eclipse 系统片段类加载器
在以前的 Java 版本中,我能够使用具有大量系统捆绑包的片段来为引导类加载器提供类。
在我的特殊情况下,这是为了支持在 Eclipse 中使用 Jacorb。在 Java 7u55 之前,这一切都运行良好。
我创建了一个包含 Jacorb 的所有 jar 的 osgi 片段。清单如下所示:
我还将以下内容指定为 vm args:
当我在 Java 7u51 中运行我的 Eclipse 应用程序时,我能够成功调用 ORB.init()。
当我在 Java 7u55 中运行相同的应用程序时,我得到以下信息:
如果我将以下内容添加为 vmargs 它可以工作。
我确认这会影响 Java 7u55 Java 6u30 和 Java 8u5
我以前不需要这样做。任何想法为什么?
--- 编辑 04/30 ---
做了更多的挖掘,我发现了导致问题的对 ORB.java 的提交。
这个提交改变了 ORB 类的创建方式。它现在被硬编码为使用 SystemClassLoader,而不是使用 Thread 上下文类加载器。
我已尝试向 Orcale 记录有关此问题的票证。同时,有没有办法通过某种片段覆盖 JVM 附带的 ORB.java?
java - 从片段访问插件,反之亦然
我正在尝试向插件添加一个片段,以便在不触及插件的情况下将信息添加到插件中。
但是,我遇到的问题是我可以从片段中访问插件中的资源,但反之则不行。
这就是我获取两个项目的资源和清单的方式。资源文件“patch.xml”位于 /src 文件夹中。
测试插件2:
主类:
检索资源:
url 始终为空。
清单.mf:
build.properties
测试片段2:
清单文件
build.properties
缺少什么或我哪里出错了?
甚至可以从插件访问片段吗?
问题已解决: 在我的测试中,我以“java 应用程序”模式启动 test.plugin2 项目。由于片段和插件必须在运行时合并,应用程序必须以“eclipse应用程序”模式启动,获取资源不会有问题。
java - Eclipse 片段不解析父插件中的类
在 Eclipse Mars.2 上的 Linux 中运行。我正在使用目标平台,因此插件主要来自 Kepler.2,因为我的一个插件是那个时代的第 3 方。
我有一个无法在 Eclipse 中编译的片段,因为很多类都无法解析。我看不出为什么这应该是片段中的 fragment.xml 和 MANIFEST.MF 看起来不错。当然,宿主片段不知道该片段。
片段的 build.properties
片段.xml
清单文件
有任何想法吗?