关于myeclipse9.0+svnsite-1.6.18的研究

众所周知,往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

 

posted on 2013-07-17 08:42  Beasty  阅读(334)  评论(0编辑  收藏  举报