2012-01-05 3 views
0

私はこのようないくつかの依存関係があります。例えば:私のpom.xmlでJDICmavenの非従属依存名

は、私が依存

<dependency> 
<artifactId>jdic</artifactId> 
<groupId>jdic</groupId> 
<version>0.8.6</version> 
</dependency> 

を定義し、私はリモートリポジトリ(内部サーバー)を持っている:例えばhttp://repo/thirdparty/ そしてJDICはhttp://repo/thirdparty/jdic/jar/jdic.jar

で見つけることができますあなたが気づいたように、命名は従来のgroupIdではありません:artifactId:version、その代わりにjdic.jar

したがって、mavenコンパイルを実行すると

mvn clean compile 

mavenは依存関係を解決できないと伝えます。 私たちはちょうどローカルリポジトリの.m2 /リポジトリにそれらのjarファイルをダウンロードし、

mvn compile (ie without clean) 

を実行し、jarファイルが問題になることはありませんことを承知しています。しかし、他の方法は、私はそれがその慣習的でない名前とそれらの依存関係のためのメタデータ/ POM情報の欠如にもかかわらず、リモートから取得することができますか?

私はすでにあなたがバージョン(jdic-0.8.6.jar)を使用して内部/ミラーリポジトリにJDICをインストールすることができ、中央

答えて

0

を上書きし、この内部リポジトリにミラーを持っています。

リポジトリマネージャを使用していて、jarファイルをアップロードした場合は、自動的にpomが作成され、依存関係がバージョンごとに作成されていることが確認されます。

+0

別のローカルリポジトリ.maven3を作成しました。私のプロジェクトのsettings.xmlでは、$ {user.home} $ {user.home}/.maven3/repositoryを再定義しました。($ {user.home}のプロパティを取ることができますか?) 次に、jdicのjarファイルを〜 .maven3 /リポジトリ/ JDIC/JDIC/0.8.6 JDIC-0.8.6.jarがjdic.jarへのシンボリックリンクをされている/ JDIC-0.8.6.jar それから私は、MVN それまだインストール走りました依存関係をダウンロードできません – ALQH

+0

$ {user.home} /。maven3/repositoryを置くと、ローカルリポジトリがmyProjectnameWhereIRunMaven /〜/ .maven3/repositoryになりました。 odd ... – ALQH

0

リモートのMavenリポジトリは、任意の方法でファイルを置くWebサーバーではありません。多くの慣例があります。それらの1つはバージョンを表現する方法です(これはアーティファクトの必須要素の1つです)。あなたの "リモートリポジトリ"では、Mavenがアーティファクトを見つける方法がないことは明らかです。

このようなファイルをホストするために、実際のMavenリモートリポジトリを設定します。 NexusとArtifactoryを見ることができます。

+0

Mavenリポジトリのファイル構造は何ですか? jarファイルを手動でローカルリポジトリにインストールしようとしましたが、mvn installを実行しても依存関係が解決されません。 – ALQH

+1

あなたはファイル構造に気を付けるべきではありません。 Maven 2/3を使用するためのアーティファクトを適切にインストールする方法については、Googleの「maven install third party lib」を参照してください。そして、私はローカルリポジトリではなくリモートリポジトリについて話しています。 (あなたはあなたの記事でJARをローカルリポジトリにインストールしているならOKだと言っていましたが、今は動作していないと言っていますか?) –

+0

Mavenがローカルのrepoを最初にチェックするので、jarをローカルのrepoにインストールすれば問題ありません。しかし、私が望むのは、Maven 1レポのリモートリポジトリからダウンロードすることです。リモートリポジトリのjarファイルが見つからない可能性が高いのは、そのMaven 1リポジトリである可能性が高いからです。 ..混乱のため申し訳ありませんが – ALQH

関連する問題