Eclipse无法从p2仓库下载全部插件是什么原因
可能的原因及排查方案
- Eclipse默认环境过滤规则隐藏插件
无论是「安装新软件」页面还是目标平台编辑页面,默认都会开启环境适配过滤:自动过滤和当前Eclipse运行的操作系统、CPU架构、Eclipse版本不兼容的插件,同时「按类别分组项目」的规则会隐藏没有归属到任何功能类别的独立插件。可取消对应过滤选项后重新刷新仓库,查看是否能找到缺失的插件。 - Nexus端p2仓库元数据异常
若该p2仓库是托管在Nexus上的自建仓库,手动上传插件后未触发p2元数据重建,会导致content.xml/jar、artifacts.xml/jar中的依赖约束、组件索引和实际存储的插件不匹配;如果是Nexus代理的第三方p2仓库,未开启元数据预缓存也会出现元数据截断的问题。可联系仓库管理员在Nexus端手动触发p2仓库的元数据重建任务后重试。 - 插件依赖约束未满足
p2的依赖解析逻辑会自动跳过依赖不满足的插件:如果缺失的插件依赖的其他组件不在当前已添加的仓库列表中,或是依赖版本和现有环境的组件版本冲突,这些插件不会被展示也不会被拉取。你可以在Eclipse的偏好设置 > 安装/更新 > 调试中开启p2调试日志,查看具体的依赖解析失败原因。 - 本地p2缓存损坏
Eclipse本地会缓存所有访问过的p2仓库的元数据文件,如果本地缓存的元数据不是Nexus上的最新版本,也会出现插件列表不全的问题。可以清空本地缓存目录{Eclipse安装路径}/p2/org.eclipse.equinox.p2.repository/cache后,重新添加p2仓库重试。 - Nexus细粒度权限限制
部分Nexus会针对p2仓库内的路径/组件配置细粒度下载权限,可能出现你有权限访问仓库根目录的元数据文件,但无权下载部分插件二进制包的情况。p2遇到无权限下载的组件时会默认静默跳过,可联系仓库管理员确认你拥有该p2仓库下所有路径的读权限。
内容的提问来源于stack exchange,提问作者Jstrnisa
相关产品推荐
相关产品推荐

