今天download了MyEclipse7.5(Eclipse版本3.4)。由于要开发Spring程序,因此准备下载SpringIDE插件帮助开发。
MyEclipse7.5自带了SpringIDE,为了建立Spring工程,按照步骤文件->新建->其他,选择MyEclipse文件夹下Spring子
文件夹,发现其中只有两项,没有Spring Project选项(晕!MyEclipse太弱了,真想放弃了)
虽然可以通过在工程上点击鼠标右键-》MyEclipse-》add Spring Capabilities解决,可还是感觉不爽,因此决定下载
SpringIDE2.2.1插件自行安装。
在菜单栏点击帮助->software updates->add/remove software进入在线更新。在弹出的对话框中选择Personal
Software 点击Add按钮,弹出新对话框。点击add site 按钮,弹出对话框,输入spring ide在线更新网址:
http://dist.springframework.org/release/IDE (Name由个人喜好,我写的是Spring IDE),点击确定按钮,在
Personal Software下会出现Spring IDE子项目(和上面写的Name同名)展开树中Spring IDE项目,并选择要安装的插件,
点击Next按钮,然后点击Apply按钮等待更新。
结果在更新过程中出错 , 错误信息如下:
Cannot complete the install because some dependencies are not satisfiable
Cannot find a solution where both Match[[com.genuitec.myeclipse.enterprise.workbench.feature.group 7.5.0.zmyeclipse75020090612] requiredCapability: org.eclipse.equinox.p2.iu/org.springframework.ide.eclipse.aop.ui.matcher/[2.2.0.zmyeclipse75020090612,2.2.0.zmyeclipse75020090612]] and Match[[org.springframework.ide.eclipse.aop.feature.feature.group 2.2.6.200908051215-RELEASE] requiredCapability: org.eclipse.equinox.p2.iu/org.springframework.ide.eclipse.aop.ui.matcher/[2.2.6.200908051215-RELEASE,2.2.6.200908051215-RELEASE]] can be satisfied.
Cannot find a solution where both Match[[org.springframework.ide.eclipse.feature.feature.group 2.2.6.200908051215-RELEASE] requiredCapability: org.eclipse.equinox.p2.iu/org.springframework.ide.eclipse.beans.ui/[2.2.6.200908051215-RELEASE,2.2.6.200908051215-RELEASE]] and Match[[com.genuitec.myeclipse.enterprise.workbench.feature.group 7.5.0.zmyeclipse75020090612] requiredCapability: org.eclipse.equinox.p2.iu/org.springframework.ide.eclipse.beans.ui/[2.2.0.zmyeclipse75020090612,2.2.0.zmyeclipse75020090612]] can be satisfied.
……… ……… ……… ………
……… ………(错误太长,其它省略了)
分析这些错误,大概是说springide中的插件与myeclipse中的插件冲突。google一下,发现是myeclipse的问题。网上有人说是Myeclipse7.0以后对集成在其中的某些插件做了修改,这样使用者只能使用Myeclipse给出的版本而无法进行更新。据某些人士透漏MyEclipse说在7.5以后会改变这个策略——可至今不见动作,等待8.0吧。
错误出了就得解决,不让在线更新我就自己下插件手动解决。首先在Spring IDE(http://springide.org/blog/2008/09/30/spring-ide-22-released/)下载Spring IDE2.2.1插件包,然后将其解压并拷贝(解压后文件夹命名为spring-ide)到%MYECLIPSE_HOME%/MyEclipse 7.5/下(%MYECLIPSE_HOME%为MyEclipse安装目录)。
MyEclipse7.0以后不再使用link作为插件安装方式,而是采用如下方式:
1. 打开MyEclipse IDE ,新建Java工程,并创建类CreatePluginsConfig,将以下代码拷贝到CreatePluginsConfig.java文件。
import java.io.File;
import java.util.ArrayList;
import java.util.List;/**
* MyEclipse 7.5 (2009-6-17) 插件代码生成工具 * 生成的代码放入 /configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
* 然后在命令提示符中使用 myeclipse.exe -clean 重启 或者关闭MyEclipse在打开即可使用中文版
*
*/
public class CreatePluginsConfig { public CreatePluginsConfig() {
} public void print(String path) {
List list = getFileList(path);
if (list == null) {
return;
} int length = list.size();
for (int i = 0; i < length; i++) {
String result = "";
String thePath = getFormatPath(getString(list.get(i)));
File file = new File(thePath);
if (file.isDirectory()) {
String fileName = file.getName();
if (fileName.indexOf("_") < 0) {
print(thePath);
continue;
}
String[] filenames = fileName.split("_");
String filename1 = filenames[0];
String filename2 = filenames[1];
result = filename1 + "," + filename2 + ",file:/" + path + "//"
+ fileName + "//,4,false";
System.out.println(result);
} else if (file.isFile()) {
String fileName = file.getName();
if (fileName.indexOf("_") < 0) {
continue;
}
int last = fileName.lastIndexOf("_");// 最后一个下划线的位置
String filename1 = fileName.substring(0, last);
String filename2 = fileName.substring(last + 1, fileName
.length() - 4);
result = filename1 + "," + filename2 + ",file:/" + path + "//"
+ fileName + ",4,false";
System.out.println(result);
} }
} public List getFileList(String path) {
path = getFormatPath(path);
path = path + "/";
File filePath = new File(path);
if (!filePath.isDirectory()) {
return null;
}
String[] filelist = filePath.list();
List filelistFilter = new ArrayList(); for (int i = 0; i < filelist.length; i++) {
String tempfilename = getFormatPath(path + filelist[i]);
filelistFilter.add(tempfilename);
}
return filelistFilter;
} public String getString(Object object) {
if (object == null) {
return "";
}
return String.valueOf(object);
} public String getFormatPath(String path) {
path = path.replaceAll("", "/");
path = path.replaceAll("//", "/");
return path;
} public static void main(String[] args) {
// 插件文件所在目录designer下的目录结构是eclipse/features and plugins的形式
String plugin ="H://Program Files//Genuitec//MyEclipse 7.5//spring-ide";
new CreatePluginsConfig().print(plugin);
}
}
其中红色部分要改成你自己的相应目录
2. 执行程序并拷贝控制台输出,将其追加到%MYECLIPSE_HOME%/MyEclipse 7.5//configuration/org.eclipse.equinox.simpleconfigurator/bundles.info文件末尾保存并关闭MyEclipse。
3.进入%MYECLIPSE_HOME%/MyEclipse 7.5//Comon/plugins 中将org.springframework.ide.*删除
(或剪切到其它文件夹以防以后使用)。
4 启动MyEclipse。好了,Spring工程出现了,而且不是在MyEclipse文件夹下而是与MyEclipse平行。
综上,解决方法主要是将MyEclipse中产生冲突的插件删除并加入需要版本的插件就可以了。其他插件也可用类似方法解决。