2009-06-25 21 views
19

Mavenにjavax jarファイルを手動でインストールするのがうんざりです。javax.cache、javax.transaction、またはMavenリポジトリでは見つけられないJSRに依存することを最善の解決策としています。Mavenにjavax。*依存関係を追加するには?

+0

メモとして。 Javaはオープンソースなので、これらのばかげたダウンロード制限を取り除くことはできますか? – pjesi

+0

JTAの問題はバイナリ配布ライセンスです。私は知っている、それは吸う –

答えて

11

あなたはhttp://maven.apache.org/guides/mini/guide-coping-with-sun-jars.htmlを見ましたか?

このリンクは、使用するgroupIDとartifactID、およびjava.netリポジトリを示唆しています。

これらのほとんどすべてがこの名前付けスキームの中央Mavenリポジトリにあるように思えます。

+0

リンクのおかげで、それは多くの助けた。しかし、それは私がjavax.cacheを見つけるのを助けるものではありません。何か案は? – pjesi

5

私は1つを認識してないんだけど、java.netリポジトリを追加すると、これらの依存関係のいくつかであなたを助けるかもしれない:(Mavenの中央リポジトリ内)

<repositories> 
    <repository> 
     <id>java.net repository</id> 
     <url>http://download.java.net/maven/2</url> 
    </repository> 
</repositories> 
3

javax.cachejcache:jcache:1.0-XXXアーティファクトである

<dependency> 
    <groupId>jcache</groupId> 
    <artifactId>jcache</artifactId> 
    <version>1.0-dev-2</version> 
</dependency> 

javax.transaction.*クラスがjavax.transaction:jta:1.1人工物にある場合、Sunのバイナリライセンス(私は知っている、これはうまくいく)のためMTAリポジトリにJTA jarを挿入できません。それを使用するには、JAR(無料)を手動でダウンロードしてローカルのリポジトリに入れるか、java.netに含まれている1.0.1Bのバージョンを使用する必要があります。

注:私は、JTAは

は、私が知っているJDKの将来のバージョンに統合されますいくつかの場所で読んで本当にMavenのリポジトリにこれらのアーティファクトを見つけるための痛みですが、あなたはの検索を行うことができますクラスにはwww.mvnrepository.comがあり、ほとんどすべてのパッケージで正しいgroupIdとartifactIdが表示されます。

+0

Javax.transaction 1.0.1Bはhttp://download.java.net/maven/2にあります –

4

複数のビルドやチーム開発の場合は、ローカル(イントラネット)メイベンリポジトリマネージャがこれらの「欠落」ジャーを手助けすることができます。これにより、パブリックリポジトリにはないサードパーティ製のジャーだけでなく、すべての外部リポジトリの構成と管理が集中管理されます。また、ビルドを自動化して、再現性の高いビルドを作成することもできます(たとえば、継続的な統合サーバーのプールがある場合)。

  1. mvn repo mgrをインストールします(リストを参照してください - imo、nexusは本当に簡単です)。
  2. イントラネットmvn repo mgrを指す「ミラー」セクションを含むcustom settings.xmlを使用します。あなたの〜/ .m2/settings.xmlを更新するか、mavenを "mvn -s etc/settings.xml"で実行してください。hudsonビルドには便利です。ここでは、カスタムのper-user settings.xmlは必要ありません。
  3. あなたの「問題」ジャーを内部レポに手作業でアップロードしてください(ウェブインタフェース経由の超シンプルなNexus)。
  4. は、内部mvn repo mgrをrepo1.maven.org/maven2、codehaus、java.net、...(etc)の「ミラー」として設定します。今

、あなたは一元は、すべてのサードパーティのリポジトリに&サードパーティのjarファイルに定義することができます - ではなく、一人一人を要求するのではなく、各ボックスおよび/または各プロジェクトを自分のポンポンかのsettings.xmlで個別に定義します。各プロジェクト/個人/ボックスは、中央の内部MavenレポをすべてのMavenプロジェクトの単一リポジトリとしてのみ定義します。

これもは、新しくビルドしたとき、またはローカルの〜/ .m2 /リポジトリキャッシュを削除する必要がある(または削除したい)場合のアーティファクトの再ダウンロード時間を短縮します。

レポマネージャー:ネクサス、archiva、artifactory ...例えば,: maven.apache.org/repository-management.html - JTAの特定の場合にはhttp://docs.codehaus.org/display/MAVENUSER/Maven+Repository+Manager+Feature+Matrix

+0

これを試してみました。nice – tgkprog

1

、私はこのポストを直撃してしまった:

http://www.jugpadova.it/articles/2005/11/26/maven-2-spring-and-jta-depencies 

..前述のJARファイルを取得するために、Oracleの恐ろしいサイトで多くの時間を費やさなければならないとすれば意味があります。 (私はオラクルの愛好家でしたが、そのサイトはここで多くのUX再作業を使用することができました)。

このポストごとに(完全に働いた)ように私は、ジェロニモ経由して、Hibernateは提供するもので依存関係を変更することを決定した:

https://forum.hibernate.org/viewtopic.php?p=2420836 

JavaのライセンスとMavenとの契約は現在Hibernateのチームで作業中ですまたはここに表示されます:

https://hibernate.onjira.com/browse/HHH-4548 

誰もが共有してくれてありがとう!

関連する問題