acceleo编译器,5元模型无法解析 [英] acceleo compiler, 5:The metamodel couldn't be resolved

查看:302
本文介绍了acceleo编译器,5元模型无法解析的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图创建为Android一个独立的Ant构建文件。我们正在使用acceleo产生code。

下面是本人的build.xml中采取的步骤。


  1. 编译汽车发电机

  2. 生成EMTL文件

  3. 生成从EMTL文件code

现在,我可以运行步骤1中,它工作正常。然后我跑第2步,并与下面的错误的(第2步错误)没有的。然后我可以运行第3步,它工作正常。然后我检查我的所有文件,并生成code,一切都看起来很好。然而,从第2步这些错误是真正困扰我,我需要让他们解决。

任何帮助将大大AP preciated,如果你需要了解更多信息,请让我知道。

以下是发布步骤2在build.xml的步骤和错误。


  build.xml的信息
<目标名称=compileAutogen描述=编译AUTOGEN>
    < javac的
        SRCDIR =$ {} AUTOGEN_SRC
        DESTDIR =$ {} AUTOGEN_BIN
        classpath=\"${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.2.0.v20111027-0537.jar;${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.7.0.v20110912-0920.jar;${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.7.0.v20110912-0920.jar;${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.2.0.v20111027-0537.jar\"
        可执行=$ {JAVA_JDK} / javac的
        叉=真
        includeantruntime =假
        failonerror =假
    />
< /目标与GT;<目标名称=generateEMTL描述=生成AUTOGEN的EMTL文件>
    < acceleoCompiler sourceFolder =$ {} AUTOGEN_SRC
         outputFolder =$ {} AUTOGEN_BIN
         依赖=
         binaryResource =假
         packagesToRegister =org.eclipse.emf.ecore.EcorePackage>
    < / acceleoCompiler>
< /目标与GT;<目标名称=generateFramework code说明=生成生成code为框架>
    < java的
        类名=framework.generator.main.Main
        classpath=\"${AUTOGEN_BIN};${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.2.0.v20111027-0537.jar;${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.7.0.v20110912-0920.jar;${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.7.0.v20110912-0920.jar;${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.2.0.v20111027-0537.jar;${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.2.0.v20111027-0537.jar;${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.7.0.v20110520-1406.jar;${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.1.1.v20110823-1646.jar;${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.1.0.v20110913-1213.jar;${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar;${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime.compatibility.registry_3.5.0.v20110505/runtime_registry_compatibility.jar;${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.7.0.v20110110.jar;${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.7.1.R37x_v20110808-1106.jar;${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.6.0.v20110523.jar;${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.5.100.v20110404.jar;${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.5.101.R37x_v20110810-1611.jar;${ECLIPSE_HOME}/plugins/org.eclipse.equinox.$p$pferences_3.4.1.R37x_v20110725.jar;${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.4.100.v20110423-0524.jar;${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.100.v20110321.jar;${ECLIPSE_HOME}/plugins/com.google.collect_1.0.0.v201105210816.jar\"
        叉=真正的>
        < ARG值=$ {}模式/>
        < ARG值=$ {} TARGET/>
    < / JAVA>
< /目标与GT;<目标
    NAME =generateFramework
    说明=编译AUTOGEN,prepares的emtl文件并运行发电机框架
    取决于=compileAutogen,generateEMTL,generateFramework code
/>


 (第2步错误)
generateEMTL:
[acceleoCompiler] generateDataAccessObject.mtl
[acceleoCompiler] 5:元模型无法解析
[acceleoCompiler] 5:元模型无法解析
[acceleoCompiler] 5:元模型无法解析
[acceleoCompiler]
[acceleoCompiler] generatePerstNode.mtl
[acceleoCompiler] 5:元模型无法解析
[acceleoCompiler] 5:元模型无法解析
[acceleoCompiler]
[acceleoCompiler] TreeWalk.mtl
[acceleoCompiler] 5:元模型无法解析
[acceleoCompiler] 5:元模型无法解析
[acceleoCompiler]构建失败
C:\\框架\\​​的build.xml:170:generateDataAccessObject.mtl
5:元模型无法解析
5:元模型无法解析
5:元模型无法解析generatePerstNode.mtl
5:元模型无法解析
5:元模型无法解析TreeWalk.mtl
5:元模型无法解析
5:元模型无法解析
    在org.eclipse.acceleo.parser.compiler.AcceleoCompiler.execute(AcceleoCompiler.java:121)
    在org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    在sun.reflect.GeneratedMethodAccessor4.invoke(来源不明)
    在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    在java.lang.reflect.Method.invoke(Method.java:597)
    在org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    在org.apache.tools.ant.Task.perform(Task.java:348)
    在org.apache.tools.ant.Target.execute(Target.java:390)
    在org.apache.tools.ant.Target.performTasks(Target.java:411)
    在org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
    在org.apache.tools.ant.Project.executeTarget(Project.java:1368)
    在org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    在org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    在org.apache.tools.ant.Main.runBuild(Main.java:809)
    在org.apache.tools.ant.Main.startAnt(Main.java:217)
    在org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    在org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)


解决方案

删除多余的东西出了 [模块generateDataAccessObject(...)] 实际上解决了这一问题。如果我只包括 http://www.eclipse.org/emf/2002/Ecore和http://www.eclipse.org/acceleo/mtl/3.0 则工作原理。

I am attempting to create a standalone ant build file for android. We are using acceleo to generate code.

Here are the steps i am taking within the build.xml.

  1. compile the auto generator
  2. Generate the EMTL files
  3. Generate the code from the EMTL files

Right now, i can run step 1 and it works fine. Then i run step 2 and it fails with the following errors (Step 2 Errors). And then i can run step 3 and it works fine. I then check all of my files and generated code and everything looks fine. However, those errors from step 2 are really bothering me and i need to get them resolved.

Any help will be greatly appreciated and if you need more information, please let me know.

Posted below are the steps in the build.xml and the errors for step 2.


the build.xml information
<target name="compileAutogen" description="Compiles Autogen">
    <javac
        srcdir="${AUTOGEN_SRC}"
        destdir="${AUTOGEN_BIN}"
        classpath="${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.2.0.v20111027-0537.jar;${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.7.0.v20110912-0920.jar;${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.7.0.v20110912-0920.jar;${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.2.0.v20111027-0537.jar"
        executable="${JAVA_JDK}/javac"
        fork="true"
        includeantruntime="false"
        failonerror="false"
    />
</target>

<target name="generateEMTL" description="Generates the EMTL files for Autogen">
    <acceleoCompiler sourceFolder="${AUTOGEN_SRC}"
         outputFolder="${AUTOGEN_BIN}"
         dependencies=""
         binaryResource="false"
         packagesToRegister="org.eclipse.emf.ecore.EcorePackage">
    </acceleoCompiler>
</target>

<target name="generateFrameworkCode" description="Generates the generated code for Framework">
    <java 
        classname="framework.generator.main.Main" 
        classpath="${AUTOGEN_BIN};${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.engine_3.2.0.v20111027-0537.jar;${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore_2.7.0.v20110912-0920.jar;${ECLIPSE_HOME}/plugins/org.eclipse.emf.common_2.7.0.v20110912-0920.jar;${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.common_3.2.0.v20111027-0537.jar;${ECLIPSE_HOME}/plugins/org.eclipse.acceleo.model_3.2.0.v20111027-0537.jar;${ECLIPSE_HOME}/plugins/org.eclipse.emf.ecore.xmi_2.7.0.v20110520-1406.jar;${ECLIPSE_HOME}/plugins/org.eclipse.ocl.ecore_3.1.1.v20110823-1646.jar;${ECLIPSE_HOME}/plugins/org.eclipse.ocl_3.1.0.v20110913-1213.jar;${ECLIPSE_HOME}/plugins/lpg.runtime.java_2.0.17.v201004271640.jar;${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime.compatibility.registry_3.5.0.v20110505/runtime_registry_compatibility.jar;${ECLIPSE_HOME}/plugins/org.eclipse.core.runtime_3.7.0.v20110110.jar;${ECLIPSE_HOME}/plugins/org.eclipse.osgi_3.7.1.R37x_v20110808-1106.jar;${ECLIPSE_HOME}/plugins/org.eclipse.equinox.common_3.6.0.v20110523.jar;${ECLIPSE_HOME}/plugins/org.eclipse.core.jobs_3.5.100.v20110404.jar;${ECLIPSE_HOME}/plugins/org.eclipse.equinox.registry_3.5.101.R37x_v20110810-1611.jar;${ECLIPSE_HOME}/plugins/org.eclipse.equinox.preferences_3.4.1.R37x_v20110725.jar;${ECLIPSE_HOME}/plugins/org.eclipse.core.contenttype_3.4.100.v20110423-0524.jar;${ECLIPSE_HOME}/plugins/org.eclipse.equinox.app_1.3.100.v20110321.jar;${ECLIPSE_HOME}/plugins/com.google.collect_1.0.0.v201105210816.jar" 
        fork="true">
        <arg value="${MODEL}"/>
        <arg value="${TARGET}"/>
    </java>
</target>

<target 
    name="generateFramework" 
    description="Compiles Autogen, prepares the emtl files and runs the generator for Framework"
    depends="compileAutogen, generateEMTL, generateFrameworkCode"
/>


(Step 2 Errors)
generateEMTL:
[acceleoCompiler] generateDataAccessObject.mtl
[acceleoCompiler] 5:The metamodel couldn't be resolved
[acceleoCompiler] 5:The metamodel couldn't be resolved
[acceleoCompiler] 5:The metamodel couldn't be resolved
[acceleoCompiler] 
[acceleoCompiler] generatePerstNode.mtl
[acceleoCompiler] 5:The metamodel couldn't be resolved
[acceleoCompiler] 5:The metamodel couldn't be resolved
[acceleoCompiler] 
[acceleoCompiler] TreeWalk.mtl
[acceleoCompiler] 5:The metamodel couldn't be resolved
[acceleoCompiler] 5:The metamodel couldn't be resolved
[acceleoCompiler] 

BUILD FAILED
C:\Framework\build.xml:170: generateDataAccessObject.mtl
5:The metamodel couldn't be resolved
5:The metamodel couldn't be resolved
5:The metamodel couldn't be resolved

generatePerstNode.mtl
5:The metamodel couldn't be resolved
5:The metamodel couldn't be resolved

TreeWalk.mtl
5:The metamodel couldn't be resolved
5:The metamodel couldn't be resolved


    at org.eclipse.acceleo.parser.compiler.AcceleoCompiler.execute(AcceleoCompiler.java:121)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
    at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
    at org.apache.tools.ant.Task.perform(Task.java:348)
    at org.apache.tools.ant.Target.execute(Target.java:390)
    at org.apache.tools.ant.Target.performTasks(Target.java:411)
    at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1399)
    at org.apache.tools.ant.Project.executeTarget(Project.java:1368)
    at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
    at org.apache.tools.ant.Project.executeTargets(Project.java:1251)
    at org.apache.tools.ant.Main.runBuild(Main.java:809)
    at org.apache.tools.ant.Main.startAnt(Main.java:217)
    at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
    at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)

解决方案

Removing extra stuff out of the [module generateDataAccessObject(...)] actually fixed the problem. If i only include http://www.eclipse.org/emf/2002/Ecore and http://www.eclipse.org/acceleo/mtl/3.0 then it works.

这篇关于acceleo编译器,5元模型无法解析的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆