众所周知,往myeclipse装svn并不是一件难事,但总有这样那样的一些小问题困惑着各位菜鸟,今天本菜鸟也装了一回svn,把过程写下仅供参考
首先,在http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240可以下载到最新版本的svn
下载下来后,解压,把东西拷到myplugins\svn里,这个文件夹可以由自己根据喜好创建在任何目录下,比如我创建的svn的路径为E:\OA\myplugins\svn
接下来运行一下代码
1 import java.io.File; 2 import java.util.ArrayList; 3 import java.util.List; 4 /** 5 * MyEclipse9 插件配置代码生成器 6 */ 7 public class PluginConfigCreator 8 { 9 public PluginConfigCreator() 10 { 11 } 12 public void print(String path) 13 { 14 List<String> list = getFileList(path); 15 if (list == null) 16 { 17 return; 18 } 19 int length = list.size(); 20 for (int i = 0; i < length; i++) 21 { 22 String result = ""; 23 String thePath = getFormatPath(getString(list.get(i))); 24 File file = new File(thePath); 25 if (file.isDirectory()) 26 { 27 String fileName = file.getName(); 28 if (fileName.indexOf("_") < 0) 29 { 30 print(thePath); 31 continue; 32 } 33 String[] filenames = fileName.split("_"); 34 String filename1 = filenames[0]; 35 String filename2 = filenames[1]; 36 result = filename1 + "," + filename2 + ",file:/" + path + "/" 37 + fileName + "\\,4,false"; 38 System.out.println(result); 39 } else if (file.isFile()) 40 { 41 String fileName = file.getName(); 42 if (fileName.indexOf("_") < 0) 43 { 44 continue; 45 } 46 int last = fileName.lastIndexOf("_");// 最后一个下划线的位置 47 String filename1 = fileName.substring(0, last); 48 String filename2 = fileName.substring(last + 1, fileName 49 .length() - 4); 50 result = filename1 + "," + filename2 + ",file:/" + path + "/" 51 + fileName + ",4,false"; 52 System.out.println(result); 53 } 54 } 55 } 56 public List<String> getFileList(String path) 57 { 58 path = getFormatPath(path); 59 path = path + "/"; 60 File filePath = new File(path); 61 if (!filePath.isDirectory()) 62 { 63 return null; 64 } 65 String[] filelist = filePath.list(); 66 List<String> filelistFilter = new ArrayList<String>(); 67 for (int i = 0; i < filelist.length; i++) 68 { 69 String tempfilename = getFormatPath(path + filelist[i]); 70 filelistFilter.add(tempfilename); 71 } 72 return filelistFilter; 73 } 74 public String getString(Object object) 75 { 76 if (object == null) 77 { 78 return ""; 79 } 80 return String.valueOf(object); 81 } 82 public String getFormatPath(String path) 83 { 84 path = path.replaceAll("\\\\", "/"); 85 path = path.replaceAll("//", "/"); 86 return path; 87 } 88 public static void main(String[] args) 89 { 90 /*你的SVN的features 和 plugins复制后放的目录*/ 91 String plugin = "E:\\OA\\myplugins\\svn"; 92 new PluginConfigCreator().print(plugin); 93 } 94 }
这里面最后的main中根据提示,设置好刚刚创建的那个文件夹的路径就行
将运行得到的代码复制粘贴到myeclipse的安装目录下面configuration\org.eclipse.equinox.simpleconfigurator\bundles.info 文件中,在这个文件中为区分新旧代码,可在两部分代码中间插入多行空格
实际上很多人会在运行以上代码的时候会遇到以下问题
Exception in thread "main" java.lang.NoClassDefFoundError: PluginConfigCreator Caused by: java.lang.ClassNotFoundException:PluginConfigCreator at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) Could not find the main class: PluginConfigCreator. Program will exit.
这是由于classloader不知道java本身的类库及用户自己的类在什么地方,具体原因弄清楚之后就可以相应的解决,可参考以下方法
http://www.zhanggang.net/y2010/37747.html、
事实上,更简单的方法是直接把代码在myeclipse中运行,这样能省去很多麻烦
接下来,得到诸如以下的代码
com.collabnet.subversion.merge.feature,2.2.4,file:/E:/OA/myplugins/svn/features/com.collabnet.subversion.merge.feature_2.2.4.jar,4,false com.sun.jna,3.2.7,file:/E:/OA/myplugins/svn/features/com.sun.jna_3.2.7.jar,4,false org.tigris.subversion.clientadapter.feature,1.6.12,file:/E:/OA/myplugins/svn/features/org.tigris.subversion.clientadapter.feature_1.6.12.jar,4,false org.tigris.subversion.clientadapter.javahl.feature,1.6.17,file:/E:/OA/myplugins/svn/features/org.tigris.subversion.clientadapter.javahl.feature_1.6.17.jar,4,false org.tigris.subversion.clientadapter.svnkit.feature,1.6.15,file:/E:/OA/myplugins/svn/features/org.tigris.subversion.clientadapter.svnkit.feature_1.6.15.jar,4,false org.tigris.subversion.subclipse.graph.feature,1.0.9,file:/E:/OA/myplugins/svn/features/org.tigris.subversion.subclipse.graph.feature_1.0.9.jar,4,false org.tigris.subversion.subclipse.mylyn,3.0.0,file:/E:/OA/myplugins/svn/features/org.tigris.subversion.subclipse.mylyn_3.0.0.jar,4,false org.tigris.subversion.subclipse,1.6.18,file:/E:/OA/myplugins/svn/features/org.tigris.subversion.subclipse_1.6.18.jar,4,false org.tmatesoft.svnkit,1.3.5.7406,file:/E:/OA/myplugins/svn/features/org.tmatesoft.svnkit_1.3.5.7406.jar,4,false com.collabnet.subversion.merge,2.2.4,file:/E:/OA/myplugins/svn/plugins/com.collabnet.subversion.merge_2.2.4.jar,4,false com.sun.jna,3.2.7,file:/E:/OA/myplugins/svn/plugins/com.sun.jna_3.2.7.jar,4,false org.tigris.subversion.clientadapter.javahl.win32,1.6.17,file:/E:/OA/myplugins/svn/plugins/org.tigris.subversion.clientadapter.javahl.win32_1.6.17.jar,4,false org.tigris.subversion.clientadapter.javahl,1.6.17,file:/E:/OA/myplugins/svn/plugins/org.tigris.subversion.clientadapter.javahl_1.6.17.jar,4,false org.tigris.subversion.clientadapter.svnkit,1.6.15,file:/E:/OA/myplugins/svn/plugins/org.tigris.subversion.clientadapter.svnkit_1.6.15.jar,4,false org.tigris.subversion.clientadapter,1.6.12,file:/E:/OA/myplugins/svn/plugins/org.tigris.subversion.clientadapter_1.6.12.jar,4,false org.tigris.subversion.subclipse.core,1.6.18,file:/E:/OA/myplugins/svn/plugins/org.tigris.subversion.subclipse.core_1.6.18.jar,4,false org.tigris.subversion.subclipse.doc,1.3.0,file:/E:/OA/myplugins/svn/plugins/org.tigris.subversion.subclipse.doc_1.3.0.jar,4,false org.tigris.subversion.subclipse.graph,1.0.9,file:/E:/OA/myplugins/svn/plugins/org.tigris.subversion.subclipse.graph_1.0.9.jar,4,false org.tigris.subversion.subclipse.mylyn,3.0.0,file:/E:/OA/myplugins/svn/plugins/org.tigris.subversion.subclipse.mylyn_3.0.0.jar,4,false org.tigris.subversion.subclipse.tools.usage,1.0.1,file:/E:/OA/myplugins/svn/plugins/org.tigris.subversion.subclipse.tools.usage_1.0.1.jar,4,false org.tigris.subversion.subclipse.ui,1.6.18,file:/E:/OA/myplugins/svn/plugins/org.tigris.subversion.subclipse.ui_1.6.18.jar,4,false org.tmatesoft.svnkit,1.3.5.7406,file:/E:/OA/myplugins/svn/plugins/org.tmatesoft.svnkit_1.3.5.7406.jar,4,false
插入以上代码后,重启myeclipse即可
另外,myeclipse优化已经svn另外几种安装方法可参考以下网址
http://www.cnblogs.com/batys/archive/2012/02/23/2364832.html
http://www.oschina.net/question/158170_34997
2013-07-17