【问题标题】:Programmatically generate an Eclipse project以编程方式生成 Eclipse 项目
【发布时间】:2010-09-20 02:10:24
【问题描述】:

我使用 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

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

【问题讨论】:

    标签: java eclipse


    【解决方案1】:

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

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

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

    只需查看“导入项目”向导的 Eclipse 代码,即可更好地了解如何使用它。

    【讨论】:

    • 这种创建项目的方式适用于eclipse插件项目。有没有办法从独立的java项目创建一个java项目?意味着只需运行它就可以从主类创建一个项目。提前致谢。
    • 如果该答案说明了可以找到导入项目向导的代码的位置,则会更有帮助。只需包含包的名称和/或实现类的名称就足以在 eclipse git 存储库中找到它。
    【解决方案2】:

    使用AntEclipse

    它可以从ant创建eclipse项目。

    【讨论】:

      【解决方案3】:

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

      IJavaProject javaSourceProject = JavaCore.create(sourceProject);
      

      【讨论】:

        猜你喜欢
        • 2016-10-23
        • 2012-09-06
        • 2013-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-12
        • 1970-01-01
        相关资源
        最近更新 更多