自Eclipse 2018-12更新以来Acceleo Builder错误

时间:2019-01-10 11:18:15

标签: eclipse emf acceleo ecore

自Eclipse更新到2018-12之后,我无法使用Query构建任何Acceleo项目。

我使用Acceleo 3.7.7

并将EMF更新为无效版本以解决此问题: https://bugs.eclipse.org/bugs/show_bug.cgi?id=543103

例如我得到这样的错误:

An error has occurred during the loading of 'platform:/resource/myProject/bin/com/xxxx/z/acceleo/module/program/utils/ServiceUtils.emtl'.
Message: Unresolved reference '/0/isProgram/%/%.2'. (platform:/resource/myProject/bin/com/xxxx/z/acceleo/module/program/utils/ServiceUtils.emtl, 4421, 74)
Location: platform:/resource/myProject/bin/com/xxxx/z/acceleo/module/program/utils/ServiceUtils.emtl at line 4 421 and column 74 

org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.UnresolvedReferenceException: Unresolved reference '/0/isProgram/%/%.2'. (file:/D:/Appsdev/irdz/workspaces/generators/myProject/bin/com/xxxx/z/acceleo/module/program/utils/ServiceUtils.emtl, 4421, 74)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.handleDemandLoadException(ResourceSetImpl.java:319)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:278)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:406)
at org.eclipse.acceleo.common.utils.ModelUtils.load(ModelUtils.java:391)
at org.eclipse.acceleo.common.utils.ModelUtils.load(ModelUtils.java:356)
at org.eclipse.acceleo.common.utils.ModelUtils.load(ModelUtils.java:233)
at org.eclipse.acceleo.internal.parser.compiler.AcceleoParser.doBuild(AcceleoParser.java:640)
at org.eclipse.acceleo.internal.parser.compiler.AcceleoParser.build(AcceleoParser.java:441)
at org.eclipse.acceleo.internal.parser.compiler.AcceleoParser.buildAll(AcceleoParser.java:272)
at org.eclipse.acceleo.internal.ide.ui.builders.AcceleoBuilder.buildAll(AcceleoBuilder.java:308)
at org.eclipse.acceleo.internal.ide.ui.builders.AcceleoBuilder.build(AcceleoBuilder.java:172)
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:833)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:220)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:263)
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:316)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:45)
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:319)
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:371)
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:392)
at org.eclipse.core.internal.events.AutoBuildJob.doBuild(AutoBuildJob.java:154)
at org.eclipse.core.internal.events.AutoBuildJob.run(AutoBuildJob.java:244)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.eclipse.emf.ecore.xmi.UnresolvedReferenceException: Unresolved reference '/0/isProgram/%/%.2'. (file:/D:/Appsdev/irdz/workspaces/generators/myProject/bin/com/xxxx/z/acceleo/module/program/utils/ServiceUtils.emtl, 4421, 74)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.handleForwardReferences(XMLHandler.java:1197)
at org.eclipse.emf.ecore.xmi.impl.XMLHandler.endDocument(XMLHandler.java:1282)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(Unknown Source)
at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:175)
at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:261)
at org.eclipse.acceleo.model.mtl.resource.EMtlResourceImpl.doLoad(EMtlResourceImpl.java:93)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1563)
at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1342)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:259)
at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:274)
... 21 more

我的mtl文件是这样的:

[query public isProgram(arg0:ProgramModel):布尔值     = invoke('com.xxxx.z.acceleo.module.program.utils.ServiceUtils','isProgram(z.ProgramModel)',Sequence {arg0}) /]

您有解决我问题的想法吗? 在Eclipse和Acceleo更新之前,我可以构建项目。 我试过-clean eclipse参数,清理项目,重新安装eclipse,创建没有问题更改的新工作区

0 个答案:

没有答案