2012-05-03 20 views
0

私は親pomファイルに依存する単純なmavenプラグインを持っています。親pomファイルには、次のコマンドを使用してローカルレポにインストールされたサードパーティjarの10個の依存関係(10個)があります。依存関係を持つmaven uber pomの使い方は?

mvn install:install-file -Dfile=foo.jar -DgroupId=com.foo.bar -DartifactId=foo1.jar -Dversion=1.1.0.0 -Dpackaging=jar 

同様に、他の9つのジャーをローカルリポジトリにインストールしました。これは、uberのpom.xmlファイルです。

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.foo.bar</groupId> 
    <artifactId>maven-uber-pom</artifactId> 
    <packaging>pom</packaging> 
    <version>1.1.0.0</version> 
    <name>maven-uber-pom</name> 
    <url>http://maven.apache.org</url> 
    <dependencies> 
    <dependency> 
     <groupId>com.foo.bar</groupId> 
     <artifactId>foo1.jar</artifactId> 
     <version>1.0.0.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.foo.bar</groupId> 
     <artifactId>foo2.jar</artifactId> 
     <version>1.0.0.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.foo.bar</groupId> 
     <artifactId>foo3.jar</artifactId> 
     <version>1.0.0.0</version> 
    </dependency> 
    <dependency> 
     <groupId>com.foo.bar</groupId> 
     <artifactId>foo4.jar</artifactId> 
     <version>1.0.0.0</version> 
    </dependency> 
    : 
    : 
    </dependencies> 

私は次のことで、私のプラグインのpom.xmlファイルにこのユーバーポンポンを参照しようとしています:

<project> 
    <parent> 
    <groupId>com.foo.bar</groupId> 
    <artifactId>maven-uber-pom</artifactId> 
    <version>1.1.0.0</version> 
    </parent> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.foo.bar</groupId> 
    <artifactId>foo-maven-plugin</artifactId> 
    <packaging>maven-plugin</packaging> 
    <version>1.1.0.0</version> 
    <name>foo bar plugin</name> 
    <url>http://maven.apache.org</url> 
</project> 

この後、私は

によってpom.xmlファイルを使用して、私のプラグインをインストールしてみてください
mvn install     <command> 

Mavenは、中央リポジトリhttp://repo1.maven.org/maven2から第三者のアーティファクト依存関係をダウンロードしようとし、その後失敗します。中央リポジトリにはこのようなコーディネイトが存在するアーティファクトは存在しないため、

私も必死だったので、プラグインの依存関係としてuber-pomを使ってみました。何か案は?

+0

正しく表示されていれば、foo.jarがインストールされていますが、その親のpomでfoo1.jar、foo2.jarなどしか参照しないでください。さらにmvn-uber-pomをローカルのmvn installリポジトリ?特に、リポジトリマネージャを使用することをお勧めします。リポジトリマネージャは、サードパーティ製のjarファイルがあり、それが中央のmavenで利用できない場合があります。 – khmarbaise

+0

私にこれを指摘していただきありがとうございます。それはこれを編集したタイプミスでした。私は実際に私のローカルrepoにmaven install:install-fileを使ってすべてのjarファイルをインストールしました。 – JourneyMan

+0

親のPOMプロジェクトで 'mvn install'が実行されましたか?そうでなければ、それは見つからないでしょう。 –

答えて

0

デフォルトでは、Mavenはローカルリポジトリの依存関係を最初に検索します。見つからなければ、グローバル/カスタムリポジトリを検索します(デフォルトでは、中央リポジトリのみが設定されています)。 uberpomでmvn installを実行しましたか?もしそうなら、あなたのローカルリポジトリのパスが正しいかどうかを確認してください。

これをあなたの例に合わせて忘れてしまったのですが、 "uberpom"の定義がgroupIdとしてcom.foo.barであり、プラグインの使用量がcom.oracle.weblogic.testであるかどうかはわかりません。それはおそらくタイプミスです。私はまた、すべてのサードパーティの依存関係が正しくインストールされていると仮定しています。

ちょうどあなたのsettings.xmlに<localRepository>が設定されているかどうかを確認してください。通常、これを設定する必要はありませんが、それを与える。

私は専門家ではありませんが、助けてください!

+0

私は、カスタマイズされた場所に私のlocalrepositoryを設定しています。私は一致するgroupIdを編集しました。これはtypo :-(私の悪い – JourneyMan

0

親POMのgroupIdと親POMの参照のgroupIdが一致しません。 groupId、artifactId、およびversionは、Mavenが親を見つけるためには正確に一致する必要があります。

+0

これを指摘していただきありがとうございます。私はそれらを一致させ、まだ中央リポジトリで検索されている瓶を見つける。 – JourneyMan

0

オフラインモードを強制するには、「mvn install -o」を試してください。アウトは問題を指摘するかもしれない。

install-fileコマンドを実行したときに、generate pomを指定してチェックサムを生成しましたか?

jarファイルが正常にインストールされているかどうかを確認するには、mavenリポジトリを手動で確認します。

関連する問題