在我看来,凡是当前eclipse能做的你都做到。
有群友问到如何通过代码重命名Java工程。
实际上,org.eclipse.jdt.internal.ui.viewsupport.BasicElementLabels.RenameJavaProjectChange 中就是eclipse的实现。
重命名工程无非是修改工程IProjectDescription。涉及到两个方面:
1.工程的名称
2.引用此工程的其它工程的classpath需要修改
看看RenameJavaProjectChange的doRename方法吧:
protected void doRename(IProgressMonitor pm) throws CoreException {
try {
pm.beginTask(getName(), 2);
if (fUpdateReferences)
modifyClassPaths(new SubProgressMonitor(pm, 1));
IProject project= getProject();
if (project != null) {
IProjectDescription description= project.getDescription();
description.setName(getNewName());
project.move(description, IResource.FORCE | IResource.SHALLOW, new SubProgressMonitor(pm, 1));
}
} finally {
pm.done();
}
}
其它细节诸如modifyClassPaths以及IProject.move方法在此不详述,感兴趣的朋友可以去看源码。