0

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

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

同様に、他の 9 つの jar ファイルをすべてローカル リポジトリにインストールしました。これは、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 ファイルでこの uber pom を参照しようとしています。

<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 を使用してみました。何か案は?

4

3 に答える 3

0

mvn install -oオフライン モードを強制してみてください。アウトは問題を指摘するかもしれません。

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

jar の Maven リポジトリを手動でチェックして、正しくインストールされているかどうかを確認します。

于 2012-05-04T01:25:20.707 に答える
0

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

これをあなたの例に適応させるのを忘れただけかどうかはわかりませんが、「uberpom」の定義には groupId がcom.foo.barあり、プラグインの使用法にはcom.oracle.weblogic.test. 多分タイプミスだけど。また、すべてのサードパーティの依存関係が正しくインストールされていると思います (pom を確認してください)。

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

私は専門家ではありませんが、お役に立てば幸いです。

于 2012-05-03T20:03:50.320 に答える
0

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

于 2012-05-03T21:27:34.757 に答える