В eclipse PDE (с установленным EMF-IncQuery), если у нас есть .eiq-файл и соответствующий .genmodel-файл, просто обновляя его, он генерирует весь файл .java и помещает его в пакет src-gen.Как сгенерировать java-файлы из .eiq-файлов?
Просто интересно Если бы мы могли сделать то же самое через любой плагин 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>
Спасибо за ответ. Да, пример pom xml четко упомянул о выходной папке. Вход в раздел метамодели не очень ясен для меня. Я имею в основном XYZ.genmodel и XYZ.ecore, но НЕ имеет Epackage, как упоминалось в wiki-странице. Должен ли я создавать файлы Epackages (.java) каким-то образом, чтобы предоставить вход, или .genmodel + .ecore было бы достаточно для генерации src-gen из .eiq-файлов? Может быть, мне нужно выкопать и предоставить соответствующие файлы Java-файлов EPackage только потому, что предоставление файла .jar дает неправильное имя класса .error. – lifeline2
EMF-IncQuery ожидает, что метаданные EMP с ссылкой на них (EPackages) доступны как-то. По этой причине, компилятор Maven имеет два варианта: либо ссылается на класс EPackage, созданный EMF, из пути к классам (в основном, все, на что вы зависите), или даете ссылку на файл EMF .genmodel через uri). –