我们希望重新实现一个旧项目,该项目通过xtext和xpand生成代码。Xpand应该被Xtend(2)取代,旧的fornax插件工作流执行应该被移除,取而代之的是xtext和xtend maven插件。在旧项目中,我们使用了两个maven项目。第一个是xtext-project,它保存了"ownLanguage“的语言定义,如果可能的话,应该只作为编译依赖项重用。第二个文件包含所描述语言的模型、用于xpand的旧工作流和xpt文件。旧的工作流使用此main.xpt作为条目:
«IMPORT ownLanguage»
«DEFINE main FOR Model-»
«EXPAND AttributeInterfaces::attributeInterfaces FOR this»
«ENDDEFINE»这里引用的AttributesInterfaces.xpt
«IMPORT ownLanguage»
«DEFINE attributeInterfaces FOR Model»
«EXPAND attributeInterface FOREACH this.fieldDefs»
«ENDDEFINE»
«DEFINE attributeInterface FOR FieldDef»
«FILE "com/package/attributes/" + this.name.toFirstUpper() + "Attribute.java"»
package ....attributes;
public interface «this.name.toFirstUpper()»Attribute {
«this.type.mappedTypeNullable.fullName» get«this.name.toFirstUpper()»OrNull();
}
«ENDFILE»
«ENDDEFINE»用于从fieldDef列表中生成接口。此"fieldDef“列表取自model.ownLaguage文件,该文件使用依赖项中的语言。
有没有办法将这些.xpt文件重写成.xtend文件,在新项目中结合使用xtext和xtend maven插件来生成与旧项目中相同的文件?
发布于 2017-03-01 14:04:01
您可以使用依赖项注入将其他内容导入到类中
@Inject extension Xxx 或
@Inject Xxx xxx然后从富字符串中调用它。
'''«method»'''没有默认的maven或工作流组件,但是编写一些gluecode应该没有问题。
https://stackoverflow.com/questions/42512288
复制相似问题