Eclipse插件开发:如何编程在工作区外创建项目?
在Eclipse中通过Java代码在非工作区位置创建项目
完全可以通过编程方式在非工作区位置创建项目,你之前的思路方向是对的,但问题出在你是从已创建的项目里获取IProjectDescription,这时候项目已经绑定到默认工作区路径了。正确的做法是先手动构建项目描述,再指定自定义位置,最后创建项目。
下面是具体的步骤和代码示例:
核心步骤
- 从零创建
IProjectDescription实例,而不是从已有项目获取 - 给描述设置你想要的非工作区路径
- 基于这个描述创建项目
完整代码示例
import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IProjectDescription; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.URI; public class NonWorkspaceProjectCreator { public static void createProjectInNonWorkspace(String projectName, String nonWorkspacePath) throws CoreException { // 1. 创建空的项目描述 IProjectDescription description = ResourcesPlugin.getWorkspace().newProjectDescription(projectName); // 2. 设置非工作区位置的URI URI projectLocation = URI.createFileURI(nonWorkspacePath); description.setLocationURI(projectLocation); // 可选:如果是Java项目,添加Java nature description.setNatureIds(new String[]{"org.eclipse.jdt.core.javanature"}); // 3. 创建项目 IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); // 第三个参数是进度监视器,null表示不跟踪进度 project.create(description, null); project.open(null); } }
注意事项
- 确保
nonWorkspacePath对应的磁盘路径不存在同名文件夹,否则创建会抛出CoreException - 所有Eclipse资源操作都会抛出
CoreException,记得在代码中捕获或声明抛出 - 如果需要配置项目的构建路径、build spec等,可以在创建项目后,通过
project.getDescription()获取描述再修改,然后调用project.setDescription(description, null)保存
简单来说,就是把创建项目的流程反过来:先定义好位置和配置,再创建项目,而不是先创建默认位置的项目再修改。
内容的提问来源于stack exchange,提问作者Morpheus
相关产品推荐
相关产品推荐

