1

尝试将 AcceleoCompiler 与 Ant Builder 一起使用。当我使用 ant 构建时,出现以下错误:

compile:
[acceleoCompiler] eINSTANCE

BUILD FAILED
C:\Users\random\workspace\foo\bar\Framework\buildstandalone.xml:52: eINSTANCE

以下是我如何定义我的目标以及其他一些可能很重要的信息。我对蚂蚁和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>
4

1 回答 1

2

该行packagesToRegister是对您的元模型包的引用,例如,如果您的生成器使用 UML 元模型,您应该注册包 org.eclipse.uml.uml2.UMLPackage(或类似的东西),您可以看到所需的包在registerPackage生成器的 Java 启动器类的方法中注册。AcceleoCompiler 不是要注册的包(这就是在 AcceleoCompiler 上找不到变量 eINSTANCE 的原因)。如果您已经生成了自己的元模型的代码,您应该寻找由 EMF 生成的 **Package 类。

于 2011-11-24T09:29:55.543 回答