2010-12-26 8 views
3

私はちょうど私の知る限り理解して...Maven:リポジトリは存在しません!それで?

を少し奇妙Maven2を中に私の旅を始めと依存リポジトリロジックを発見した、私はそれが中に見られる様々なのPOMを取得することができ、そこからリポジトリにMavenをポイントする必要があります私の依存関係。言い換えれば、私のAntフォルダで行ったように、libフォルダ内のすべての依存関係をダウンロードする代わりに、いろいろなMavenリポジトリを調べて、必要なものを見つけなければなりません。

OK、MVNBrowserのおかげで、少し楽になります。しかし! Mavenリポジトリが存在しない場合はどうなりますか?

たとえば、私のプロジェクトではSlickを使用します。他の依存関係の中で、slickは何らかの理由でJNLPを使います。 JNLPのためのアーティファクトは、次のとおりです。

<dependency> 
     <groupId>javax.jnlp</groupId> 
     <artifactId>jnlp</artifactId> 
     <version>1.2</version> 
    </dependency> 

According to MVNBrowser、javax.jnlpは1つのリポジトリ、Freehepで見つけることができます。これはもう利用できません。

だから今?

答えて

2

これは、ほとんどのMavenリポジトリが既存のバージョンを更新(または削除)したり、バージョン番号を上回る(または新しい名前でリリースする)ことしか許可しない理由となっています。あなたの依存関係について、あなたはそれが含まれている別のリポジトリを検索し、あなたのプロジェクト(またはスーパー)にこのリポジトリを追加する必要があります。このようなポンポン:あなたはの値と識別子とURLを交換する必要があります

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

新しいレポ

実際には、自分のローカルリポジトリをチェックしてパッケージが既に存在するかどうかを確認します(普通は$ HOME/.m2/フォルダにあります)ので、jarファイルが手元にある場合は、

mvn install:install-file -DgroupId=javax.jnlp -DartifactId=jnlp \ -Dversion=1.2 -Dpackaging=jar -Dfile=/path/to/jnlp-1.2.jar 

はまた公式の春、日(オラクル)とJBoss(RedHatの)リポジトリが最も顕著な不作為を持ってmvnbrowser.comは、すべてのMavenのリポジトリからのコンテンツを追跡していないことに注意してください。したがって、実際に説明する問題は、実際には(Oracle JDBCドライバをインストールするときに)かなり頻繁に発生し、他のリポジトリを探したり、自分自身にJarファイルを追加する必要があります。

関連する問題