Нужно ли включать пакет EclipseLink modelgen в мои зависимости Maven? - PullRequest
0 голосов
/ 19 марта 2012

Я использую Netbeans 7.1 для написания веб-приложения JSF 2.0, созданного Maven. Сервер GlassFish 3.1 и EclipseLink в качестве поставщика JPA 2.0.

Когда я выполняю «чистку и сборку» проекта, все сгенерированные источники для метамодели JPA уходят и не возвращаются. Таким образом, Netbeans видит кучу неопределенных символов. Красные точки повсюду.

Странно, что если я запускаю проект, то метамодель как-то генерируется, и в конце концов находит путь обратно в каталог генерируемых источников, который использует проект Maven. Веб-приложение работает. Но нет способа генерировать метамодель без запуска приложения. Иногда требуется несколько проходов!

Экспериментируя, я обнаружил, что если я включу следующее в качестве зависимости, проблема частично исчезнет. Метод очистки и сборки по-прежнему генерирует ошибки в выходных данных, но модель создается в отношении среды IDE.

    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
        <version>2.3.0</version>
    </dependency>

Может кто-нибудь объяснить, что происходит, и, возможно, что я должен делать?

Ответы [ 2 ]

3 голосов
/ 05 января 2015

Я использую следующую зависимость:

<dependency>
  <groupId>org.eclipse.persistence</groupId>
  <artifactId>org.eclipse.persistence.jpa.modelgen.processor</artifactId>
  <version>2.5.2</version>
  <scope>provided</scope>
</dependency>

После 'очистки и сборки' вы увидите, что метамодель действительно создается во время сборки, и классы фактически включены в цель /Папка сгенерированных источников / аннотаций.Затем они помещаются в файл jar.Таким образом, можно сказать, что вы можете использовать их как «предоставленные», чтобы они использовались во время сборки, но не включались в общий распределенный пакет.

0 голосов
/ 20 марта 2012

Если я правильно понимаю, процессор генерирует метамодель при запуске приложения (во время выполнения).Поэтому вы должны включить его в свое веб-приложение.

Классы метамодели ранее не существовали.

...