В документации Eclipselink говорится, что мне нужны следующие записи в моем pom.xml для получения ее со Знатоком:
org.eclipse.persistence
eclipselink
2.0.0
compile
...
...
EclipseLink Repo
http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/rt/eclipselink/maven.repo
...
Но когда я пытаюсь использовать @Entity
NetBeans аннотации говорит мне, что класс не может быть найден. И действительно: нет никакого класса Объекта в javax.persistence пакете от Eclipselink.
Как я должен установить Eclipselink со Знатоком?
Артефакт eclipselink
не предоставляет JPA 2.0 API , вам необходимо добавить javax.persistence
:
<repositories>
<repository>
<id>eclipselink</id>
<url>http://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/rt/eclipselink/maven.repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.0.0</version>
<scope>provided</scope><!-- since I'm running inside a Java EE container -->
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.0</version>
<scope>provided</scope><!-- since I'm running inside a Java EE container -->
</dependency>
...
Для простоты я рекомендую использовать jar-файл EclipseLink, отличный от OSGI.
Вы можете попробовать добавить
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
Когда я заглядываю в свой локальный репозиторий maven, org.eclipse.persistence: eclipselink действительно содержит api сохраняемости, по крайней мере, для версии 2.0.0-SNAPSHOT eclipselink.
Но есть еще один набор зависимостей в репозитории eclipselink, который немного более модульный. Вот зависимости, которые я использую в текущем проекте:
<!-- persistence api -->
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.0</version>
<scope>provided</scope>
</dependency>
<!-- jpa implementation -->
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>org.eclipse.persistence.jpa</artifactId>
<version>2.0.2</version>
<scope>provided</scope>
</dependency>
Обратите внимание, что для области действия задано значение «предоставлено», поскольку я развертываю ее в glassfish, который уже содержит eclipselink.