web-dev-qa-db-ja.com

Mavenが依存関係を見つけることができません[dependencyResolutionException]

Maven依存関係をプロジェクトに追加しました。プロジェクトはローカルでコンパイルされますが、サーバーではコンパイルされません。新しく追加された依存関係を解決できません。

これは私のpom.xmlファイルです:

    <repositories>
        <repository>
            <id>rep</id>
            <name>Repository</name>
            <url>http://artifacts.com/rep</url>
            <releases>
               <enabled>true</enabled>
               <updatePolicy>always</updatePolicy>
            </releases>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>com.project.rest</groupId>
            <artifactId>common</artifactId>
            <version>2.0.5</version>
        </dependency>
    </dependencies>

そして、これはエラーのある私のコンソール出力です:

 Downloading: http://artifacts.com/rep/com/project/rest/common/2.0.5/common-2.0.5.pom
    [WARNING] The POM for com.project.rest:common:jar:2.0.5 is missing, no dependency information available

    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD FAILURE
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 6.154s
    [INFO] Finished at: Tue Feb 03 06:58:35 BRT 2015
    [INFO] Final Memory: 9M/152M
    [INFO] ------------------------------------------------------------------------
    [ERROR] Failed to execute goal on project server: Could not resolve dependencies for project org.server:
    server:jar:2.5.1-SNAPSHOT: The following artifacts could not be resolved: com.project.rest:common:jar:2.0.5:
    Could not find artifact com.project.rest:common:jar:2.0.5 in rep (http://artifacts.com/rep) -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.Apache.org/confluence/display/MAVEN/DependencyResolutionException

(実際のURLとパッケージをすべて非表示にしました。)

何が問題なのですか?

5
lapots

最初の行「Downloading:...」は、Mavenがアーティファクトをダウンロードしようとしていることだけを示しています。それは成功についての声明ではありません。 Mavenが成功すると、「ダウンロード済み:...」で始まる別の行が表示されます。

したがって、あなたの場合、Mavenはファイルをダウンロードできませんでした。ログに記録されたURLが存在するかどうか、および保護されているかどうかをブラウザで確認してください。

ところで<updatePolicy>always</updatePolicy>リリースはこれ以上変更されるべきではないため、リリースリポジトリでは非常にまれです。

2
Horst Krause

DependencyResolutionException

(ソース: Maven Confluence

このエラーは通常、Mavenが依存関係をダウンロードできなかった場合に発生します。このエラーの考えられる原因は次のとおりです。

  1. POMは、アーティファクトをホストする<repository>の宣言を見逃しています。
  2. 構成したリポジトリーには認証が必要であり、Mavenはサーバーに正しい資格情報を提供できませんでした。この場合、${user.home}/.m2/settings.xml<server>宣言が含まれていることを確認してください。その<id>は、使用するリモートリポジトリの<id>と一致します。詳細については、 Maven設定リファレンス を参照してください。
  3. 問題のリモートリポジトリはSSLを使用しており、Mavenを実行しているJVMはサーバーの証明書を信頼していません。
  4. Mavenがリモートリポジトリにアクセスできない一般的なネットワークの問題があります。プロキシ構成がありません。
  5. 厳密なチェックサム検証を実行するようにMavenを構成しましたが、ダウンロードするファイルが破損しました。
  6. Mavenはファイルをローカルリポジトリに保存できませんでした。詳細については、 LocalRepositoryNotAccessibleException を参照してください。
  7. Maven 3では、ダウンロードに失敗して修正した場合(たとえば、jarをリポジトリにアップロードすることにより)、失敗をキャッシュします。強制的に更新するには、コマンドラインに-Uを追加します。

一般的なネットワーク関連の問題の場合は、次の記事を参照することもできます。

1
naXa

リポジトリが正しく構成されていることを確認してください。リポジトリで、バージョンcom.project.rest:common2.0.5を検索してみてください。

これはあなた自身のプロジェクトですか?あなたが作ったいくつかの瓶?リポジトリにデプロイしてもよろしいですか?リポジトリにない場合は、localリポジトリ(通常は。m2/repository/com)で検索してみてください/事業...)

1
OhadR

あなたが言及したプロジェクトにはPOMが含まれていません。つまり、MAVENプロジェクトではありません。 .m2(これをcドライブまたはインストールした場所で確認してください)リポジトリには、必要なプロジェクトが含まれているかどうかに関係なく、そこにあるすべての依存関係フォルダーが含まれています(com.project.rest)。

0
Ankit Khare

コンソール出力で提案されているように、問題が発生する可能性のある場所の詳細については、Maven Wikiページ( http://cwiki.Apache.org/confluence/display/MAVEN/DependencyResolutionException )を確認できます。

あなたが提供した情報を考えると。ポイント1の問題を見ていると思います:POMは、アーティファクトをホストする宣言を見逃しています。

Mavenリポジトリには、ローカル、中央、リモートの3つのタイプがあります。

あなたの場合、ローカルリポジトリにはプロジェクト固有のアーティファクトが含まれていますが、中央リポジトリには含まれていません。

  1. ローカルリポジトリはローカルマシン上にあります。 Mavenビルドを実行すると、Mavenはすべての依存関係jarをローカルリポジトリに自動的にダウンロードします。
  2. 中央リポジトリはコミュニティによって提供されるWebリポジトリであり、ここにある一般的に使用されるライブラリが多数含まれています https://repo1.maven .org/maven2 /
  3. リモートリポジトリは、必要なライブラリまたは他のプロジェクトjarを含む開発者独自のカスタムリポジトリです。開発者は、タグを使用してPOMファイルでこれらのリポジトリを定義します。

私は次のことを提案します:

  • リポジトリが正しい場合は、リポジトリタグを確認してください
  • リポジトリに依存関係タグで指定されたアーティファクトが含まれているかどうかを確認します
0
Sabina Orazem