Xtext:为没有src,src-gen等的DSL创建项目向导

时间:2016-10-19 12:16:06

标签: dsl wizard xtext

我遇到了一些关于为我的dsl语言创建新项目向导的信息,并通过添加

成功创建了这个向导
    fragment = ui.projectWizard.SimpleProjectWizardFragment2 {
        generate = true
    }

到我的工作流程。

但是,使用向导时,它还会创建不必要的文件和文件夹,例如build.propertiesMETA-INFsrcsrc-genJRE System Library。 基本上我只想要一个与我的DSL相关联的空项目

我通过调用

成功删除了META-INFbuild.properties
try {
    project.getFile("build.properties").delete(true, null);
    project.getFolder("META-INF").delete(true, null);
    } catch (CoreException e) {}    

从我自定义enhanceProject(..) {扩展DSLProjectCreator2DSLProjectCreator的末尾开始。

但如果我使用这种方式删除srcsrc-gen,我会收到错误标记,表示srcsrc-gen丢失了(但是#39;解决删除JRE System Library)。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

啊,你启用向导的方式有点奇怪

newProjectWizardForEclipse = {
    pluginProject = false
    generate = true
}

如何不创建文件夹而不是删除它们。

class MyDslNewProjectWizardInitialContents {
    @Inject
    FileExtensionProvider fileExtensionProvider

    def generateInitialContents(IFileSystemAccess2 fsa) {
        fsa.generateFile(
            "Model." + fileExtensionProvider.primaryFileExtension,
            '''
            /*
             * This is an example model
             */
            Hello Xtext!
            '''
            )
    }
}

public class MyDslProjectCreatorCustom extends MyDslProjectCreator {

    @Override
    protected List<String> getAllFolders() {
        return Collections.emptyList();
    }

}

我不知道你为什么要创建一个java项目。你使用xbase吗?哪个项目工厂受到约束?

生成的MyDslProjectCreator如何? 它使用JavaProjectFactory或PluginProjectFactory