JPA 2.0 API maven артефакт
Я использую JPA 2.0, а мой постоянный провайдер - Hibernate; однако я хотел бы просто включить стандартный API из javax, но в центре нет артефакта 2.0. В настоящее время я использую артефакт Hibernate JPA 2.0, но я бы хотел использовать что-то более стандартное.
Возможно ли это?
Спасибо,
Вальтер
Ответы
Ответ 1
В настоящее время я использую артефакт Hibernate JPA 2.0, но я бы хотел использовать что-то более стандартное
По-прежнему нет артефакта javax.persistence:persistence-api:jar:2.0
от Sun/Oracle. Либо используйте полный артефакт javax:javaee-api:jar:6.0
, если вы хотите что-то от Sun/Oracle... или просто придерживайтесь интерфейсов, предоставляемых Hibernate, EclipseLink, OpenJPA и т.д.
Ответ 2
Как объясняет Иван, в Maven нет официальных банок Sunacle. Однако довольно часто случается, что разработчик данного API будет публиковать артефакт для этого API (сам API, а не их реализацию).
В случае JPA 2.0, Hibernate публикует org.hibernate.javax.persistence: hibernate-jpa-2.0-api, который содержит только классы javax.persistence
и не относящиеся к гибернату вещи.
My build.gradle поэтому говорит:
dependencies {
compile group: 'org.hibernate.javax.persistence', name: 'hibernate-jpa-2.0-api', version: '1.0.1.Final'
runtime group: 'org.hibernate', name: 'hibernate-entitymanager', version: '4.1.4.Final'
}
Что переносит Hibernate-версию API на путь компиляции class и их реализацию в пути к среде выполнения.
Ответ 3
Прямой ответ на ваши вопросы: Нет, это невозможно. Более длинная версия приведена здесь: Apache > Maven > Руководство по работе с Sun JAR. Краткое резюме более длинного ответа:
Есть (по крайней мере) две проблемы с публикацией артефактов Sun/Oracle в центральном репозитории:
- Ограничительная лицензия
- Соглашение об именах
Ответ 4
В настоящее время (Q4 2017) есть javax.persistence-api
, доступный в центральном центре maven.
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
Код поддерживается в это github repo.