web-dev-qa-db-ja.com

Mavenを使用して最新のHibernateリリースを取得するにはどうすればよいですか?

Maven依存関係を介してHibernateの最新リリースを取得するのに問題があります。 Maven中央リポジトリから取得できる最新版は3.2.6.GAであり、hibernate.orgサイトに表示されている最新リリースである3.3.2.GAの使用に興味があるようです。プロジェクトのpom.xmlでこの最新バージョンへの休止状態の依存関係を変更すると、Mavenビルドを実行するときに次のエラーが発生します。

Missing:
----------
1) org.hibernate:hibernate:jar:3.3.2.GA

  Try downloading the file manually from the project website.

  Then, install it using the command:
      mvn install:install-file -DgroupId=org.hibernate -DartifactId=hibernate -D
version=3.3.2.GA -Dpackaging=jar -Dfile=/path/to/file

  Alternatively, if you Host your own repository you can deploy the file there:

      mvn deploy:deploy-file -DgroupId=org.hibernate -DartifactId=hibernate -Dve
rsion=3.3.2.GA -Dpackaging=jar -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[
id]

それを行うと、javassist依存関係を追加する必要があることを示すエラーが引き続き表示されます。次に、ローカルにインストールする必要があるhibernate-validator依存関係を更新する必要があります。 MavenをJBoss/Hibernateリポジトリなどに向けるなど、より良い方法があります。これは、SpringやJUnitなど、私が使用している他の重要なオープンコースパッケージと比較して本当に頭痛の種です。 doは、dependency要素のバージョン番号を更新するだけで機能します。

私は以下のリポジトリ宣言をpom.xmlに追加しようとしましたが、喜びはありません:

<repositories>
    <repository>
        <id>jboss</id>
        <url>http://repository.jboss.org/maven2</url>
    </repository>
</repositories>

Googleで検索しましたが、あまり役に立ちませんでした。 hibernateまたはhibernate-core(3.3.2.GA)、hibernate-validator(3.1.0)、およびhibernate-annotations(3.4.0)の最新リリースを使用する最も簡単な方法を誰かが提案できますか?

35
James Adams

JBossは、独自のリポジトリを JBossコミュニティブログに投稿 としてMavenセントラルと同期し始めているため、hibernateアーティファクトは、pom.xmlまたはリポジトリマネージャーにJBossリポジトリを追加することなく利用可能になりました。

hibernate-coreの検索結果

search result for hibernate-core

Hibernate Core 3.6.3をプロジェクトに追加するには、pomに次のスニペットを追加します。

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-core</artifactId>
    <version>3.6.3.Final</version>
</dependency>
36
Robert Munteanu

Org.hibernate:hibernate:3.3.2.GAは残りのモジュールのビルドに使用されるアグリゲーターPOMであり、実際にはjarではないため、問題が発生しています。 3.2.7の後にリファクタリングが行われたように見えますが、それは人々を追い払っています。参照用に、この ブログエントリ は、Hibernateを中央に昇格させた問題のヒントであり、変更を説明する場合があります。

JBossリポジトリ を見ると、3.3.2.GAのhibernateモジュールがホストされていることがわかります、ホストされているだけです個々のアーティファクト、hibernate-core、hibernate-ehcacheなど。リポジトリ宣言が正しいため、変更を考慮するために依存関係宣言を微調整する必要があります。

JBossリポジトリは hibernate-annotations-3.4.0.GAhibernate-validator-3.1.0.GA 、および hibernate-core-3.3.2をホストします.GA とりわけ。 POMに特定のアーティファクトを追加してみて、すでに宣言したようにJBossリポジトリを使用してください。

hibernate-dependencies pomもあります。これは、大部分の休止状態のアーティファクト(コアを含む)に推移的な依存関係を提供します。したがって、最も簡単なことは、既存のhibernate依存関係宣言をhibernate-dependenciesに置き換えることです。

依存関係はこのようになります...

<dependencies>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-dependencies <!--or hibernate-core--></artifactId>
    <version>3.3.2.GA</version>
    <type>pom</type>
    <!--hibernate-dependencies is a pom, not needed for hibernate-core-->
  </dependency>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-annotations</artifactId>
    <version>3.4.0.GA</version>
  </dependency>
  <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>3.1.0.GA</version>
  </dependency>
  ...
  <!--any other hibernate deps not inherited transitively-->

人生をよりシンプルにするために、これらのすべてのhibernate依存関係を(hibernate-all)と呼ばれるプロジェクトで定義し、hibernateを使用するすべてのプロジェクトに対してその単一のプロジェクトを参照できます(もちろん、hibernteチームがそのプロジェクトを提供した場合、 )。

16
Rich Seller

イライラすることはありますが、新しいバージョンは存在せず、長い間使用されていません。皮肉なことに、Hibernateアーティファクトには、かなり複雑な相互依存関係があり、それらの依存関係の文書化された最小バージョンがあり、理想的にはMaven POMとして表されます。代わりに、バイナリを自分でダウンロードして、ローカルで試してみる必要があります。

4
skaffman

Pom.xmlで依存関係を使用できます

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate</artifactId>
            <version>3.2.6.ga</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.3.1.GA</version>
        </dependency>
2
Vicky

この質問は古くから古くなっています。すべてのHibernateリリースは、長年からMavenセントラルで利用可能です。

最新のMaven座標については、www.hibernate.orgを確認してください(IDEの提案を信用しないでください)。

1
Sanne

これに新しく、それで遊んで。完全なソリューションはありませんが、次のとおりです。

Maven 2の代わりに http://repository.jboss.com/maven3/ を含めることで、いくつかの依存関係を解決できたようです。

問題が残る場合は、最後のストローとして、Mavenサイトから欠落しているファイルをダウンロードできます。たとえば、次のように参照します。

http://repo1.maven.org/maven2/org/hibernate/hibernate-core/3.6.8.Final/

(はい、これと他の合理的なパスをリポジトリソースとして設定しようとしましたが、成功しませんでした...)

このjarをMavenビルドにインストールするには、次のようにします。

mvn install:install-file -Dfile=path/to/jar/hibernate-core-3.6.8.Final.jar -DgroupId=org.hibernate -DartifactId=hibernate-core -Dversion=3.6.8-Final -Dpackaging=jar

参照: http://maven.Apache.org/guides/mini/guide-3rd-party-jars-local.html

申し訳ありませんが、これの一部は冗長であることに気づきましたが、追加のURLを確認できると便利です。 -JB

0
jsh

jarがリポジトリにありません。おそらく、それが最新の休止状態バージョンがメインリポジトリにない理由です。

0
Salandur