尝试将 AcceleoCompiler 与 Ant Builder 一起使用。当我用 ant 构建时,出现以下错误:
compile:
[acceleoCompiler] eINSTANCE
BUILD FAILED
C:\Users\random\workspace\foo\bar\Framework\buildstandalone.xml:52: eINSTANCE
以下是我如何定义目标以及其他一些可能重要的信息。我对 ant 和 acceleo 很陌生。如果您需要任何其他信息,请告诉我。我不确定以下内容是否正确,如果有任何需要更改的地方,请告诉我。它抱怨的那条线是
packagesToRegister="org.eclipse.acceleo.parser.compiler.AcceleoCompiler">
我不知道那条线是否正确,我只是猜测。
<path id="Framework.classpath">
<path refid="Framework.libraryclasspath"/>
</path>
<taskdef id="acceleoCompiler" name="acceleoCompiler" classname="org.eclipse.acceleo.parser.compiler.AcceleoCompiler"
classpathref="Framework.libraryclasspath">
</taskdef>
<target name="compile">
<acceleoCompiler sourceFolder="${SOURCE_FOLDER}"
outputFolder="${OUTPUT_FOLDER}"
dependencies=""
binaryResource="true"
packagesToRegister="org.eclipse.acceleo.parser.compiler.AcceleoCompiler"></acceleoCompiler>
</target>
行
packagesToRegister
是对元模型包的引用,例如,如果您的生成器使用 UML 元模型,您应该注册包 org.eclipse.uml.uml2.UMLPackage (或类似的东西),您可以请参阅生成器的 Java 启动器类的方法 registerPackage
中注册所需的包。 AcceleoCompiler 不是要注册的包(这就是在 AcceleoCompiler 上找不到变量 eINSTANCE 的原因)。如果您已经生成了自己的元模型的代码,则应该寻找由 EMF 生成的 **Package 类。