通过 Gradle 生成 EMF 模型

Generate EMF Model via Gradle

我目前正在评估 EMF。因此,我在 Eclipse 中创建了一些玩具模型并生成了相应的代码。

由于我的工作流程不包含任何 Eclipse 相关工具,因此我想坚持使用基于 gradle 的非玩具项目工作流程。在没有 Eclipse 的情况下通过 Gradle 生成 EMF 模型(通过注释 Java 提供)是否可能并且有意义吗?

Xtext 可以使用 gradle 生成 xtext 语言。此选项的一部分是 运行 mwe2 工作流程。 运行 ecore 2 java 生成器 (EcoreGenerator)

有一个 mwe 工作流组件

因此您应该能够编写一个使用此组件的工作流程并通过 gradle 进行生成。 不幸的是,如果将所有内容粘在一起需要手动操作

Workflow {

bean = org.eclipse.emf.mwe.utils.StandaloneSetup {
    platformUri=".."
}

component = org.eclipse.emf.mwe.utils.DirectoryCleaner {
    directory ="src/main/java/sample"
}

component = org.eclipse.emf.mwe2.ecore.EcoreGenerator {
    generateCustomClasses = false
    genModel = "platform:/resource/org.xtext.example.mydsl3/model/sample.genmodel"
    srcPath = "platform:/resource/org.xtext.example.mydsl3/src/main/java" 
}
}

例如您可能需要根据生成的源应该去的地方等调整 genmodel。