Java 如何将代码生成从xpand迁移到xtend(2)?
我们想重新实现一个旧项目,它使用通过xtext和xpand生成代码。Xpand应该替换为Xtend(2),旧的fornax插件工作流执行应该被删除,替换为xtext和xtendmaven插件。 在旧项目中,我们使用两个maven项目。 第一个是xtext项目,它包含“ownLanguage”的语言定义,如果可能的话,只能作为编译依赖项重新使用。 第二个包含一个文件,其中包含所述语言中的模型、xpand的旧工作流和xpt文件。 旧工作流使用此main.xpt作为条目:Java 如何将代码生成从xpand迁移到xtend(2)?,java,maven,xtext,xtend,xpand,Java,Maven,Xtext,Xtend,Xpand,我们想重新实现一个旧项目,它使用通过xtext和xpand生成代码。Xpand应该替换为Xtend(2),旧的fornax插件工作流执行应该被删除,替换为xtext和xtendmaven插件。 在旧项目中,我们使用两个maven项目。 第一个是xtext项目,它包含“ownLanguage”的语言定义,如果可能的话,只能作为编译依赖项重新使用。 第二个包含一个文件,其中包含所述语言中的模型、xpand的旧工作流和xpt文件。 旧工作流使用此main.xpt作为条目: «IMPORT ownLan
«IMPORT ownLanguage»
«DEFINE main FOR Model-»
«EXPAND AttributeInterfaces::attributeInterfaces FOR this»
«ENDDEFINE»
这里是引用的AttributeInterfaces.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和xtendmaven插件生成与旧项目相同的文件?您可以使用依赖项注入将其他内容导入到类中
@Inject extension Xxx
或
然后从一个丰富的字符串调用它
'''«method»'''
没有默认的maven或workflow组件,但编写一些gluecode应该没有问题您可以使用依赖项注入将其他内容导入到类中
@Inject extension Xxx
或
然后从一个丰富的字符串调用它
'''«method»'''
没有默认的maven或workflow组件,但编写一点gluecode应该没有问题