如何在Eclipse目标定义文件中添加未被特性引用的插件?
问题描述
开发RCP应用时,正在配置指向Eclipse 2023-06更新站点的.target定义文件,此前.target指向本地Eclipse安装目录,切换到更新站点后遇到以下问题:
- 原基于安装目录的target文件包含
javax.annotation插件,但无法将其添加到基于更新站点的target文件中 - 确认该插件存在于Eclipse 2023-06更新站点的插件列表中,但找不到添加到目标文件的方法
- 即使添加了更新站点的所有可用单元,所需插件仍未出现在内容列表中
现有基于更新站点的target文件配置如下:
<location includeAllPlatforms="true" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit"> <repository location="https://download.eclipse.org/eclipse/updates/4.28"/> <unit id="org.eclipse.equinox.sdk.feature.group" version="3.23.800.v20230523-2142"/> <unit id="org.eclipse.platform.ide" version="4.28.0.I20230605-0440"/> <unit id="org.eclipse.platform.sdk" version="4.28.0.I20230605-0440"/> <unit id="org.eclipse.rcp.feature.group" version="4.28.0.v20230605-0440"/> <unit id="org.eclipse.rcp.source.feature.group" version="4.28.0.v20230605-0440"/> <unit id="org.eclipse.sdk.ide" version="4.28.0.I20230605-0440"/> <unit id="org.eclipse.emf.common.feature.group" version="2.29.0.v20230315-1321"/> <unit id="org.eclipse.ecf.filetransfer.httpclient5.feature.feature.group" version="1.1.701.v20230423-0417"/> <unit id="org.eclipse.ecf.filetransfer.httpclient5.feature.source.feature.group" version="1.1.701.v20230423-0417"/> </location> <location includeAllPlatforms="true" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit"> <repository location="https://download.eclipse.org/releases/2023-06"/> <unit id="org.eclipse.wst.xml_core.feature.feature.group" version="3.30.0.v202305230750"/> <unit id="org.eclipse.jst.web_ui.feature.feature.group" version="3.30.0.v202305221615"/> </location>
解决方案
方法1:手动添加插件作为独立Installable Unit
在对应更新站点的<location>节点中,直接添加javax.annotation插件的<unit>条目。先从更新站点插件列表中确认插件的完整ID和版本(比如javax.annotation_1.3.5.v20221019-0556.jar对应的ID为javax.annotation,版本为1.3.5.v20221019-0556)。
修改后的节点示例:
<location includeAllPlatforms="true" includeConfigurePhase="true" includeMode="slicer" includeSource="true" type="InstallableUnit"> <repository location="https://download.eclipse.org/releases/2023-06"/> <unit id="org.eclipse.wst.xml_core.feature.feature.group" version="3.30.0.v202305230750"/> <unit id="org.eclipse.jst.web_ui.feature.feature.group" version="3.30.0.v202305221615"/> <!-- 添加javax.annotation插件 --> <unit id="javax.annotation" version="1.3.5.v20221019-0556"/> </location>
方法2:调整includeMode属性
当前配置的includeMode="slicer"只会包含选中单元的依赖项,不会主动添加未被引用的独立插件。将其改为includeMode="planner",可让目标定义包含所有显式添加的单元,即使它们未被其他特性引用。
修改后的节点示例:
<location includeAllPlatforms="true" includeConfigurePhase="true" includeMode="planner" includeSource="true" type="InstallableUnit"> <repository location="https://download.eclipse.org/releases/2023-06"/> <unit id="org.eclipse.wst.xml_core.feature.feature.group" version="3.30.0.v202305230750"/> <unit id="org.eclipse.jst.web_ui.feature.feature.group" version="3.30.0.v202305221615"/> <unit id="javax.annotation" version="1.3.5.v20221019-0556"/> </location>
方法3:通过Target编辑器可视化添加
- 打开.target文件,切换到Definition标签页
- 选中Eclipse 2023-06更新站点,点击**Add...**按钮
- 在弹出窗口的Installable Units标签下,搜索框输入
javax.annotation - 找到对应插件后勾选,点击Finish
- 保存文件并重新加载目标定义
注意事项
- 如果搜索不到插件,右键点击更新站点选择Reload,确保站点索引已正确加载
- 若插件存在依赖项,可保持
includeMode="planner"自动处理依赖,或手动添加所需的依赖单元
内容的提问来源于stack exchange,提问作者Mario Marinato
相关产品推荐
相关产品推荐

