Как сгенерировать java-файлы из файлов .eiq?

В eclipse PDE (с установленным EMF-IncQuery), если у нас есть файл .eiq и соответствующий файл .genmodel, просто обновив его, он генерирует весь файл .java и помещает его в пакет src-gen.

Просто интересно, можем ли мы сделать то же самое с помощью любого плагина maven ??

Я прошел через https://wiki.eclipse.org/EMFIncQuery/UserDocumentation/Build. где получил четкое представление о том, как генерировать java-файлы из .genmodel, но не нашел информации о создании java-файлов из файлов .eiq с помощью подключаемого модуля EMF-IncQuery maven.

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>

person lifeline2    schedule 26.11.2015    source источник


Ответы (1)


На упомянутой странице документации есть пример pom.xml, который также содержит incquery Плагин -maven-compiler после комментария «настройка генератора».

Основная идея заключается в том, что вы должны определить выходную папку и выбрать пакеты EPackages, используемые вашим кодом, а затем компилятор Maven сгенерирует код.

person Zoltán Ujhelyi    schedule 26.11.2015
comment
Спасибо за ответ. Да, в примере pom xml четко упоминается выходная папка. Ввод в разделе метамодели мне не очень ясен. В основном у меня есть XYZ.genmodel и XYZ.ecore, но НЕТ Epackage, как упоминалось на странице вики. Должен ли я каким-то образом создавать Epackages (файлы .java) для предоставления входных данных, или .genmodel + .ecore будет достаточно для создания src-gen из файлов .eiq? Возможно, мне придется копаться и предоставлять соответствующие java-файлы EPackage только потому, что предоставление файла .jar дает неправильное имя класса .error. - person lifeline2; 27.11.2015
comment
EMF-IncQuery ожидает, что упомянутые метамодели EMF (EPackages) каким-то образом доступны. По этой причине компилятор Maven предлагает два варианта: либо ссылаться на класс EPackage, сгенерированный EMF, из пути к классам (в основном все, от чего вы зависите); или дайте ссылку на файл EMF .genmodel через uri). - person Zoltán Ujhelyi; 27.11.2015