2015-11-26 2 views
0

В 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> 

ответ

0

Указанная страница документации имеет example pom.xml, что также отличает плагин incquery-Maven-компилятор, после «настраивает генератор» комментария.

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

+0

Спасибо за ответ. Да, пример pom xml четко упомянул о выходной папке. Вход в раздел метамодели не очень ясен для меня. Я имею в основном XYZ.genmodel и XYZ.ecore, но НЕ имеет Epackage, как упоминалось в wiki-странице. Должен ли я создавать файлы Epackages (.java) каким-то образом, чтобы предоставить вход, или .genmodel + .ecore было бы достаточно для генерации src-gen из .eiq-файлов? Может быть, мне нужно выкопать и предоставить соответствующие файлы Java-файлов EPackage только потому, что предоставление файла .jar дает неправильное имя класса .error. – lifeline2

+0

EMF-IncQuery ожидает, что метаданные EMP с ссылкой на них (EPackages) доступны как-то. По этой причине, компилятор Maven имеет два варианта: либо ссылается на класс EPackage, созданный EMF, из пути к классам (в основном, все, на что вы зависите), или даете ссылку на файл EMF .genmodel через uri). –

Смежные вопросы