以编程方式生成Eclipse项目

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

我想以编程方式为应用程序生成一个项目。 .project.classpath文件很容易理解,我已经了解到项目存储在/.metadata/.plugins/org.eclipse.core.resources/.projects下的/.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并为每个版本创建一个新分支。 这意味着我需要为我创建的每个开发视图(分支)重新创建这些项目。 这通常足以自动化。

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

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

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

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

使用AntEclipse

它可以从ant创建eclipse项目。