简介:面向 Eclipse、MyEclipse 开发者的 SVN 版本控制集成插件包,site-1.8.22 对应 Subclipse 1.8.x 稳定分支,用于在 IDE 内直接完成代码提交、更新、差异对比与冲突解决,免去切换外部客户端的麻烦,适合需要与服务器端 SVN 版本保持兼容的项目团队。压缩包共 30 个文件,以 27 个 jar 组件为主体,涵盖 subclipse 核心、UI、图形化版本树、SVNKit 与 JavaHL 适配器及合并工具等模块,另附 1 份 docx 安装说明、1 个 site.xml 更新站点描述与 1 个 html 帮助入口,整体约 16.9MB。已有 942 人学习下载。安装文档针对 MyEclipse 10 给出添加更新站点、搜索安装与重启生效的完整流程,配合 features、plugins 目录可离线部署;读者可据此快速搭建本地版本控制环境,掌握检出、日志浏览、回滚与冲突合并等日常操作。
1. SVN 插件 site-1.8.22 安装:从版本对不上到一次跑通
上周帮一个做跨平台系统的团队收拾构建机,打开 Eclipse 一看,SVN 插件版本是 1.6 时代的,连不上他们新换的 1.8 服务端,提交按钮点下去转两圈就报错。这种场景太常见了:服务端升级了,客户端插件没跟上,或者反过来,插件装高了、JDK 版本又不够。site-1.8.22 这个包本质上是一个离线更新站点(update site),里面打包了 Subclipse 系列插件的 feature 和 plugin 目录,专门给不能直连外网、或者内网只允许离线安装的环境用。装不好会怎样?轻则 Eclipse 启动报一堆 missing requirement,重则整个工作空间打不开。这篇笔记写给两类人:第一次在离线环境装 SVN 插件的开发者,以及被版本兼容折腾过、想找一份能对照参数的老手。
2. 装前把环境列清楚:JDK、Eclipse 与 site 包的对应关系
动手之前先把三样东西对齐:JDK 版本、Eclipse 版本、site 包里的插件版本。这三者任意一个错位,后面都会以「安装成功但功能不可用」的形式还回来,比直接报错更难查。
2.1 先确认 JDK 与 Eclipse 的位数
site-1.8.22 里的插件是编译好的 class 文件,对 JDK 有最低要求。常见做法是先看 Eclipse 自带的 JRE 版本,而不是系统里装的那个。打开 Eclipse,菜单 Help → About Eclipse,点 Installation Details → Configuration,找java.version这一行。如果显示 1.6.x,而插件要求 1.7 以上,就得先改eclipse.ini里的-vm指向一个高版本 JDK。
# 查看系统里可用的 JDK,确认路径和版本 ls /usr/lib/jvm/ # 输出示例:java-1.7.0-openjdk-amd64 java-1.8.0-openjdk-amd64 # 确认 Eclipse 实际使用的 JVM grep -A1 "^-vm" /path/to/eclipse/eclipse.ini第一段命令列出机器上所有 JVM 安装目录,目的是找到 1.7 或 1.8 的路径;第二段从eclipse.ini里读出当前绑定的-vm参数。-vm必须单独占一行,路径写在下一行,写成-vm/path这种连写形式 Eclipse 会直接忽略,这是最常见的翻车点之一。位数也要一致:64 位 Eclipse 配 32 位 JDK,启动阶段就会报Failed to load the JNI shared library。
2.2 版本对照表:别拿 1.8 的包往 1.6 的壳里塞
site-1.8.22 对应的是 Subclipse 1.8.x 系列,适配 Eclipse 3.6 到 4.x 的较老版本。下面这张表是我按实际装过的组合整理的,装之前先对号入座:
| 组件 | 推荐版本 | 最低要求 | 说明 |
|---|---|---|---|
| JDK | 1.7 / 1.8 | 1.6 | 低于 1.6 无法加载插件类 |
| Eclipse | 3.7 / 4.2 / 4.4 | 3.6 | 4.5 以上建议换新版插件 |
| site 包 | site-1.8.22 | 同系列 | 不要与 1.10+ 混装 |
| SVN 客户端库 | SVNKit 1.7.x | 随包 | 纯 Java 实现,无需系统 svn |
表格里「SVN 客户端库」这一行值得多说一句:site 包里通常带 SVNKit,它是纯 Java 的 SVN 实现,不依赖系统里装没装命令行 svn。所以内网机器上svn --version报 command not found 并不影响插件工作,这一点常被误判成环境没配好。
2.3 清理旧插件残留
如果机器上之前装过别的 SVN 插件(比如老版本 Subclipse 或另一家的连接器),先清干净再装。残留的 feature 会让新插件在解析依赖时选中旧 bundle,出现「装了两份、哪份都不生效」的玄学现象。检查eclipse/features和eclipse/plugins两个目录,把名字里带subclipse、subversion、svn的目录先备份再移走。备份这一步别省,移错了还能放回去。
3. 离线安装 site-1.8.22:三种装法与参数取舍
site 包拿到手是一个压缩包,解压后应该能看到features/和plugins/两个目录,外加site.xml或content.jar。装法有三种:Eclipse 内置的 Install New Software 指向本地目录、直接拷贝到 dropins、以及命令行 p2 director。三种各有适用场景,下面逐个说。
3.1 解压与目录结构核对
先把包解到一个路径不含中文和空格的目录,比如/opt/svn-site/site-1.8.22。路径带空格是 p2 安装器解析 URL 时的老问题,能避就避。
# 解压并核对结构 mkdir -p /opt/svn-site unzip site-1.8.22.zip -d /opt/svn-site/ ls /opt/svn-site/site-1.8.22/ # 期望看到:features plugins site.xml(或 content.jar + artifacts.jar)unzip -d指定目标目录,避免解到当前目录弄乱工作区。ls这一步是核对:如果只看到一层嵌套的同名目录,说明压缩包多包了一层,安装时指向的路径要再往下走一级。site.xml存在说明是老式 update site,content.jar存在说明是 p2 仓库,两种 Eclipse 都能识别,但老版本 Eclipse 对 p2 的支持偶尔抽风,遇到识别不了就优先找 site.xml。
3.2 用 Install New Software 指向本地站点
这是最直观的装法。Eclipse 菜单 Help → Install New Software → Add,Location 填file:/opt/svn-site/site-1.8.22,注意是file:加斜杠的 URL 形式,直接填文件系统路径在某些版本上不认。
Name: SVN Site 1.8.22 Location: file:/opt/svn-site/site-1.8.22填完点 OK,中间列表会列出可装的组件,勾选带Subclipse和Subversion Client Adapter的项,取消勾选 "Contact all update sites during install to find required software",这一步很关键:内网环境它去外网找依赖会卡很久最后超时,取消后只从本地站点解析。Next 之后接受协议,重启 Eclipse 生效。
3.3 dropins 方式:快,但要注意清理缓存
不想走安装向导的话,把features和plugins里的内容直接拷进 Eclipse 对应目录,或者整个放到dropins/下。dropins 的好处是不污染主目录、卸载就是删文件夹;坏处是 Eclipse 对 dropins 的扫描有缓存,拷完不生效是常态。
# 拷贝到 dropins 并清缓存 cp -r /opt/svn-site/site-1.8.22/features/* /path/to/eclipse/dropins/ cp -r /opt/svn-site/site-1.8.22/plugins/* /path/to/eclipse/dropins/ # 删除 p2 缓存,强制重新扫描 rm -rf /path/to/eclipse/p2/org.eclipse.equinox.p2.core/cache/前两条把 feature 和 plugin 平铺进 dropins,第三条删掉 p2 的 core cache。这个 cache 目录里存的是上一次解析结果的快照,不删的话 Eclipse 可能仍然按旧清单加载。我一般会在删之前把整个p2目录备份一份,出问题能回滚。dropins 方式装完,启动时加-clean参数跑一次,让框架重建插件注册表。
3.4 命令行 p2 director:适合批量部署
要给一批构建机统一装,图形界面不现实,用 p2 director 命令行。Eclipse 自带eclipse/eclipse -application org.eclipse.equinox.p2.director,参数如下:
/path/to/eclipse/eclipse \ -application org.eclipse.equinox.p2.director \ -noSplash \ -repository file:/opt/svn-site/site-1.8.22 \ -installIU org.tigris.subversion.subclipse.feature.group \ -destination /path/to/eclipse \ -profile SDKProfile-repository指向本地站点,-installIU是要装的 Installable Unit 标识,Subclipse 的 feature group id 一般是org.tigris.subversion.subclipse.feature.group,具体以站点里site.xml列出的为准,装之前先grep一下确认。-destination是 Eclipse 安装根目录,-profile是 p2 profile 名,默认安装通常是SDKProfile或epp.package.java,写错会报 profile not found。这条命令适合写进部署脚本,但要注意它不会自动处理依赖冲突,报错信息比图形界面更晦涩,第一次用建议先在测试机跑通。
4. 配置与连接:让插件真正连上 SVN 服务端
装完插件只是第一步,能不能连上仓库取决于连接器配置和认证方式。这一章讲配置项怎么填、协议怎么选,以及连不上时先看哪里。
4.1 选择 SVN 连接器接口
Eclipse 里 SVN 插件通过「SVN Connector」与仓库通信,常见的有 SVNKit 和 JavaHL 两种。SVNKit 纯 Java,随 site 包一起装,开箱即用;JavaHL 依赖系统本地的 native 库,性能略好但配置麻烦。内网离线环境我一般直接用 SVNKit,省去装 native 库的步骤。
配置入口在 Window → Preferences → Team → SVN → SVN Connector,下拉里选SVNKit (Pure Java)。如果下拉是空的,说明插件没装全,回到第 3 章检查 feature 是否都装上了。
4.2 仓库地址与认证信息的填法
新建仓库位置:Window → Show View → Other → SVN → SVN Repositories,右键 New → Repository Location。
URL: svn://192.168.10.20/repos/project-x 协议: svn:// 或 http(s):// 用户名: 域账号或仓库独立账号 密码: 勾选 Save Password 前先确认机器是否共用URL 协议头要和服务端配置一致:服务端跑的是 svnserve,就用svn://加端口(默认 3690);跑的是 Apache mod_dav_svn,就用http://或https://。协议写错的表现是连接超时而不是认证失败,容易误判成网络问题。密码保存选项在共用构建机上建议不勾,避免凭据落到别人的用户目录里。
4.3 认证缓存与证书信任
https 协议首次连接会弹证书确认,内网自签证书很常见,确认指纹无误后选择永久接受。如果之前接受过旧证书、服务端换过证书,会报Certificate validation failed,这时要去~/.eclipse/org.eclipse.equinox.security或 Windows 的%APPDATA%\.eclipse下清掉对应的认证缓存条目,重新连接再确认一次。svn 协议则没有证书环节,但账号密码错误会连续重试导致账号被锁,配置时先确认密码再点连接。
5. 避坑与排查:五条装坏了的现场记录
这一章按「现象 → 原因 → 解决」记五条实际踩过的坑,都是装 site-1.8.22 时高频出现的。
5.1 现象:装完重启,SVN 菜单不出现
原因通常是 feature 装上了但 plugin 没被加载,dropins 缓存没清或者-clean没跑。解决:删p2/org.eclipse.equinox.p2.core/cache/,用eclipse -clean启动一次;仍不出现就检查configuration/org.eclipse.equinox.simpleconfigurator/bundles.info里有没有 subclipse 相关条目,没有说明安装根本没落盘,回退重装。
5.2 现象:报 missing requirement,指向某个 org.eclipse 包
原因是 site 包要求的 Eclipse 基础版本高于当前版本,或者当前 Eclipse 缺了某个平台 feature。解决:对照第 2 章的版本表,确认 Eclipse 版本;实在要装,用 Install New Software 时勾上 "Contact all update sites" 让它从官方站点补依赖(仅限能访问外网的机器),内网机器则换一个与当前 Eclipse 匹配的 site 包版本。
5.3 现象:连接仓库报 "svn: E175002: Connection reset"
原因是协议或端口不对,或者服务端只允许特定协议。解决:先用命令行svn info svn://host/repos验证地址可达,再回 Eclipse 改 URL 协议头;如果服务端只开 https,svn://永远连不上,这不是插件问题。
5.4 现象:提交时卡在 "Updating status cache" 很久
原因是工作副本太大、状态缓存重建。解决:Team → Refresh/Cleanup 执行一次清理;仍慢的话在 Preferences → Team → SVN → Performance 里调大 cache 相关参数,或者把大文件目录从版本控制里排除。这个坑在构建机上尤其明显,因为工作副本动辄几个 G。
5.5 现象:装完插件后 Eclipse 启动变慢甚至卡死
原因是 dropins 里残留了多个版本的同一 bundle,解析时互相冲突。解决:清空 dropins 下所有 svn 相关目录,只保留一套;用-clean启动重建注册表。我一般会在装之前把 dropins 整个备份,出问题直接还原,比逐个排查快。
6. 装完怎么验证:三步确认插件真的能用
装完不验证等于没装。我习惯按三步走,从「插件在不在」到「功能通不通」逐层确认,任何一步不过就停在那里查,不往下走。
第一步,确认插件已注册。Help → About Eclipse → Installation Details → Installed Software,列表里应该能看到 Subclipse 和 Subversion Client Adapter 两条,版本号与 site 包一致。看不到就是没装上,回第 3 章。
第二步,确认连接器可用。Window → Preferences → Team → SVN → SVN Connector,下拉能选中 SVNKit 且不报错。这一步过了,说明插件与 Eclipse 的集成没问题。
第三步,做一次真实的读写。在 SVN Repositories 视图里展开仓库,检出一个小目录到本地,改一个文件,提交,再更新一次。三步都成功,才算真正跑通。只做检出不做提交,会漏掉认证写权限的问题,构建机上这个坑很常见。
# 辅助验证:用命令行确认服务端本身可达,排除插件因素 svn info svn://192.168.10.20/repos/project-x --username test --password '***' # 返回 Revision / URL 等信息说明服务端正常,问题在客户端配置这段命令的作用是把「服务端问题」和「插件问题」切开:命令行能通而 Eclipse 不通,问题一定在插件配置或认证缓存;命令行也不通,先修网络和服务端,别在插件上浪费时间。
验证通过后还有一个小习惯值得养成:把这次装的 site 包路径、Eclipse 版本、JDK 版本记在构建机的部署备注里。下次换机器或者重装,照着备注走一遍,比重新试错快得多。从那以后我每次装离线插件都强制走一遍这三步验证,宁可多花十分钟,也不想在提交代码的那一刻才发现插件是个摆设。希望帮到你。
本文还有配套的精品资源,点击获取