【问题标题】:How to generate java files from .eiq files?如何从 .eiq 文件生成 java 文件?
【发布时间】:2015-11-27 16:33:58
【问题描述】:

在eclipse PDE(安装了EMF-IncQuery)中,如果我们有.eiq文件和对应的.genmodel文件,只需刷新它就会生成所有.java文件并放入src-gen包中。

只是想知道我们是否可以通过任何 maven 插件做同样的事情?

我已经通过https://wiki.eclipse.org/EMFIncQuery/UserDocumentation/Build 了解了如何从 .genmodel 生成 java 文件,但没有找到关于通过 EMF-IncQuery maven 插件从 .eiq 文件生成 java 文件的信息。

PF 相关的 pom.xml 条目

<!-- Setting up generator -->
            <plugin>
              <groupId>org.eclipse.incquery</groupId>
              <artifactId>incquery-maven-plugin</artifactId>
              <version>1.0.1</version>
              <!-- Binding execution to the code generation lifecycle phase -->
              <executions>
                <execution>
                  <goals>
                    <goal>generate</goal>
                  </goals>
                </execution>
              </executions>
              <configuration>
                <!-- Output directory - required -->
                <outputDirectory>${project.build.directory}/../src-gen</outputDirectory>
                  <metamodels>
                    <metamodel>
                      <!-- Java class for the EMF EPackage - use this if generated EMF code is in the classpath -->
                      <packageClass>${project.build.directory}/../abc.def.mnq.epackage.jar</packageClass>
                      <!-- genmodel file used for generating the EMF model classes - use this if EMF model is in the same project
                       <genmodelUri>${project.build.directory}/../XYZ.genmodel</genmodelUri>  -->
                    </metamodel>
                  </metamodels>
              </configuration>
              </plugin>
        </plugins>

【问题讨论】:

    标签: maven-3 maven-plugin emf


    【解决方案1】:

    提到的文档页面有一个 example pom.xml,它还具有 incquery-maven-compiler 插件,在“设置生成器”注释之后。

    基本思路是你应该定义输出文件夹,并选择你的代码使用的EPackages,然后Maven编译器将生成代码。

    【讨论】:

    • 感谢您的回复。是的,示例 pom xml 清楚地提到了输出文件夹。元模型部分的输入对我来说不是很清楚。我基本上有 XYZ.genmodel 和 XYZ.ecore,但没有 wiki 页面中提到的 Epackage。我是否必须以某种方式创建 Epackages(.java 文件)以提供输入,或者 .genmodel + .ecore 足以从 .eiq 文件生成 src-gen?可能我只需要挖掘并提供相应的 EPackage java 文件,因为提供 .jar 文件会给出错误的类名“.error.
    • EMF-IncQuery 期望引用的 EMF 元模型(EPackages)以某种方式可用。出于这个原因,Maven 编译器有两个选项:要么从类路径中引用 EMF 生成的 EPackage 类(基本上是你所依赖的任何东西);要么或通过 uri 提供对 EMF .genmodel 文件的引用)。
    猜你喜欢
    • 1970-01-01
    • 2011-10-18
    • 2013-10-28
    • 1970-01-01
    • 2012-05-20
    • 2018-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多