以编程方式生成Eclipse项目

时间:2008-10-30 21:15:18

标签: java eclipse

我使用eclipse处理最初独立于eclipse创建的应用程序。因此,应用程序的目录结构显然不是对日食友好的。

我想以编程方式为应用程序生成一个项目。 .project.classpath文件很容易理解,我已经了解到项目存储在<workspace>/.metadata/.plugins/org.eclipse.core.resources/.projects

下的工作区中

不幸的是,这里的一些文件(特别是.location)似乎是以某种二进制格式编码的。在预感中,我尝试使用ObjectInputStream反序列化它 - 没有骰子。所以它似乎不是一个序列化的java对象。

我的问题是:有没有办法自动生成这些文件?

对于好奇,我试图反序列化.location文件的错误如下:

java.io.StreamCorruptedException: java.io.StreamCorruptedException: invalid stream header: 40B18B81

更新:我的目标是能够使用命令行脚本或程序替换New Java Project向导。原因是所讨论的应用程序实际上是一个非常大的J2EE / weblogic应用程序,我喜欢将其分解为一个较大的(近20个)子项目集合。更复杂的是,我们对SCM使用clearcase并为每个版本创建一个新分支。这意味着我需要为我创建的每个开发视图(分支)重新创建这些项目。这通常足以自动化。

3 个答案:

答案 0 :(得分:18)

您应该能够通过编写一个小的Eclipse插件来实现这一目标。您甚至可以将其扩展为“无头”RCP应用程序,并传递您需要的命令行参数。

创建项目的准系统代码是:

IProgressMonitor progressMonitor = new NullProgressMonitor();
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
IProject project = root.getProject("DesiredProjectName");
project.create(progressMonitor);
project.open(progressMonitor);

只需看一下导入项目向导的eclipse代码,就可以更好地了解它的用途。

答案 1 :(得分:2)

使用AntEclipse

它可以从ant创建eclipse项目。

答案 2 :(得分:0)

要创建Java项目,可以使用org.eclipse.jdt.core.JavaCore中的JavaCore。作为sourceProject,您可以使用@James Van Huis建议的通用项目项。

IJavaProject javaSourceProject = JavaCore.create(sourceProject);