私はJPA2.0を使用しており、永続プロバイダーはHibernateです。ただし、javaxの標準APIを含めたいのですが、中央には2.0アーティファクトはありません。現在、Hibernate JPA 2.0アーティファクトを使用していますが、より標準的なものを使用したいと思います。
これは可能ですか?
ありがとう、
ウォルター
現在、Hibernate JPA 2.0アーティファクトを使用していますが、より標準的なものを使用したいと思います
Sun/Oracleからのjavax.persistence:persistence-api:jar:2.0
アーティファクトはまだありません。 Sun/Oracleから何かが必要な場合は、完全なjavax:javaee-api:jar:6.0
アーティファクトを使用するか、Hibernate、EclipseLink、OpenJPAなどによって提供されるインターフェースをそのまま使用します。
Ivanが説明するように、Mavenには公式のSunaclejarはありません。ただし、特定のAPIの実装者が、そのAPIのアーティファクト(APIの実装ではなく、API自体)を公開する場合がよくあります。
JPA 2.0の場合、Hibernateは org.hibernate.javax.persistence:hibernate-jpa-2.0-api を公開します。これにはjavax.persistence
クラスであり、Hibernate固有のものはありません。
したがって、私の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のリリースがコンパイルクラスパスに配置され、それらの実装がランタイムクラスパスに配置されます。
現在(2017年第4四半期)にはjavax.persistence-api
MavenCentralで入手できます。
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>javax.persistence-api</artifactId>
<version>2.2</version>
</dependency>
コードは このgithubリポジトリ で維持されます。
あなたの質問に対する直接の答えは次のとおりです。いいえ、それは不可能です。長いバージョンはここにあります: Apache> Maven> Sun JARに対処するためのガイド 。長い答えの短い要約:
中央リポジトリでのSun/Oracleアーティファクトの公開には(少なくとも)2つの問題があります。