私は誰かが私が苦労している問題で私を助けることができると思っています。
ターミナルから自分のプロジェクトをビルドしようとすると、このエラーが発生します。
Failed to read artifact descriptor for com.morrislgn.merchandising.common:test-data-utils:jar:0.3b-SNAPSHOT: Could not find artifact com.morrislgn.merchandising:merchandising:pom:0.3b-SNAPSHOT
common.test-data-utils
jarファイルは別のプロジェクトによって作成され、このプロジェクトと他のプロジェクトとの間で共有されます(他のプロジェクトも構築しませんが、それは別の問題によるものです)。
私は問題なくcom.morrislgn.merchandising.common:test-data-utils
を構築することができます、それが私のマシン上の.m2
ローカルレポジトリで作るエントリーを見ることができます。私は自分のリポジトリにもEclipseのインデックスを付け直しました。
私のプロジェクトのPOMは、このエントリがあります:
<dependency>
<groupId>com.morrislgn.merchandising.common</groupId>
<artifactId>test-data-utils</artifactId>
<version>0.3b-SNAPSHOT</version>
</dependency>
これは私には正しいと思われます - POMはEclipseで見てもエラーを報告しません。
誰かが私がここで見逃しているか間違っていることを私に言うことができますか?
あなたはいつでもmvn -U clean install
を試すことができます
-U
はリモートリポジトリの更新されたリリースとスナップショットのチェックを強制します。
この問題は、親pomを参照する子プロジェクトがいくつかあり、親pomディレクトリからインストールしていない(親ディレクトリからmvn install
を実行する)場合に発生する可能性があります。子プロジェクトの1つが兄弟プロジェクトに依存している可能性があり、兄弟のpomを読みに行くときに、親pomディレクトリから少なくとも1回インストールしていない限り、問題で言及されたエラーで失敗します。
プロジェクトを新しいコンピュータに移動するときに、私はこの問題に遭遇しました。私は子プロジェクトからコマンドを実行する習慣があり、親でinstallを実行しませんでした。
Eclipseを使用している場合は、プロジェクト - >プロパティ - > Mavenを右クリックし、 "を確認してください。ワークスペースプロジェクトから依存関係を解決する "はクリックされていません。
お役に立てれば。
私は会話にかなり遅れていることを知っていますが、私もこの問題を抱えていました。問題は私の会社のファイアウォールだと思います。私の解決策は、ネットワークから電源を切り、オープンワイヤレスに接続してから、Eclipse経由でアップデートを強制することでした。これですべてが解決しました。
私はEclipseで同じ問題を抱えていましたが、Mavenのビルドコマンドラインではうまくいきましたが、これを試してみてください。
エラーは消えました....私のmvnコマンドラインがそれらのディレクトリとEclipse .m2Eclipseで動作しなかった理由は、私にはわかりません、そしてそれはちょっと吸います。私のプロジェクトはEclipseで再び動作しています。
私は、このエラーが.jarファイルと.pomファイルを除くすべてのものが表示されていたリポジトリフォルダを削除することで、この問題を解決しました。
私はIntelliJを使用して同じ問題を抱えていた。 pom.xml> Maven> Reimportを右クリックして解決した
「成果物記述子の読み取りに失敗した」問題は、一般的にMavenリポジトリ内の依存関係のpomファイルに問題があることを示しています。 POMファイルの名前がMavenが期待する名前と同じであるかどうかを二重チェックし、POMファイルの内容が有効かどうかをチェックすることをお勧めします。
プロジェクトがあります
A/
|--a1
|--a2
今私たちの組織に別のプロジェクトがあります。
B/
|--b1
|--b2
|--b3
(すべてのモジュールa1、b1などおよび親プロジェクトA、Bには、標準のMavenの親子規則に従って、独自のpom.xmlがあります)
どちらのプロジェクトも私の地元のEclipseでチェックされています(SVNから)。私は積極的にAに取り組んでいます。
私はBで開発された良い共通の機能(b4)があることを知るようになりました、そして私はそれを使う必要がありました。
B/
|--b1
|--b2
|--b3
|--b4 (NEW)
B4の開発者は、このb4モジュールを組織のリポジトリの成果物としてデプロイしました。私は自分のモジュールのPOM、すなわちa2のpom.xmlへの依存を含めました。 Eclipseがrepoから必要な成果物をダウンロードしたので、そこにクラスをインポートできました。
今度は問題が始まります...私は何らかの目的でb4のソースコードをチェックする必要があり、私は既にローカルのEclipseでBをチェックアウトしていたのでSVNからそれを更新し、モジュールb4をチェックアウトしました。また、clean、packageなどのターゲットを使用してモジュールb4のpom.xmlを実行しました。コーディングを終えた後、モジュールa2のJARを作成する必要がありました。私はa2のpom.xmlとBAMで "package"を実行しました。 a2モジュールのエラーnエラー..これらのエラーも非常にユーザーフレンドリーではありませんでした。唯一のことは、ログに確かにb4の名前があったということです。
解決策:何時間もの間多くの解決策を試みた後、私は自分のBのプロジェクトディレクトリ(すなわち../codebase/B)のコンソールから "mvn -U clean install"を実行しました。 Bが親であるため、clean installコマンドはb4を含むすべてのモジュールに対して実行され、正常に実行されました。この後、私はAである私の親プロジェクトに対して "mvn -U clean install"を実行しました。そしてこれはうまくいきました! a2モジュールがコンパイルされ、インストールされました(後でパッケージされました)。
ここで重要な点は、b4がワークスペースにある場合はb4をインストールしないことです。あなたは完全なBをクリーンインストールする必要があるでしょう。私はZuillから答えを読んだ後にこの解決策を見つけました
編集:ローカル環境でBプロジェクトをチェックアウトしていない場合は、この問題が発生しなかった可能性があります。私はBが私のローカルワークスペースでチェックアウトしたことが原因で起こったと思う傾向があります。
com.morrislgn.merchandising.common
とcom.johnlewis.jec.webpim.common
という2つの異なるグループIDに言及しました。たぶんこれは問題です。
私にとっては、それが実際に依存関係POMの問題であるように思われます。
私はjitpack仮想レポジトリを使ってそれを回避しました。そこにはあなた自身のPOMの代わりにそれらのURLに基づくgithubレポジトリを含めることができます(私の場合は間違っていたようです)。
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
Eclipseを介した運の更新はありませんでした。 mvn clean install -Uを使用しなければなりませんでした(これですべてが解決しました)。
find ~/.m2 -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;
私にとっては、「User Setting.xml」を内部に設定することに関連していました。
Window > preferences > Maven > User Settings > and then browsing to the user Settings inside the { maven unarchived directory / }/Apache-maven-2.2.1/conf/settings.xml .
私たちの場合、マルチモジュールMaven構成のプロジェクトの一部が他のプロジェクトを参照している間に、誤ったgroupIdの名前変更が原因でエラーが表示されました。
2つのモジュール(billing-parent
、billing
)を持つアグリゲータープロジェクト(billing-api
)がありました。
com.company.team:billing-parent
|-com.company.team:billing-api
|-com.company.team:billing
プロジェクトbilling
はbilling-api
に依存しています。そのため、pom.xml
には以下が含まれていました。
<dependency>
<groupId>com.company.team</groupId>
<artifactId>billing-api</artifactId>
<version>${project.version}</version>
</dependency>
GroupIdの名前をcom.company.team
からcom.company.team.billing
に変更することにしました。両方のモジュールの親のpom.xml
および<parent>
セクションの古い値を置き換えました。しかし、上記の依存関係を更新するのを忘れていました。したがって、billing
プロジェクトが古いbilling-api
アーティファクトを参照する構成がありました。最終的には、billing
モジュールのビルドをしばらくしてから、次のようなエラーが発生します。
[ERROR] Failed to execute goal on project billing: Could not resolve dependencies for project com.company.team.billing:billing:jar:3.5.1-SNAPSHOT: Failed to collect dependencies at com.company.team:billing-api:jar:3.5.1-SNAPSHOT: Failed to read artifact descriptor for com.company.team:billing-api:jar:3.5.1-SNAPSHOT: Failure to find <parent of the com.company.team:billing-parent project which is not available any more>
billing-api
モジュールがエラーなしでビルドされるという事実にもかかわらず。
解決策1:groupId
のdependency
の名前も変更します。
解決策2:次のようにgroupId
を${project.groupId}
プロパティに置き換えます。
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>billing-api</artifactId>
<version>${project.version}</version>
</dependency>
結論したがって、マルチモジュール構成でエラーが発生した場合の私のアドバイスは次のとおりです:隣接モジュールへの依存関係のgroupId
およびartifactId
を徹底的にチェックします。
私はしばらく同じ問題を抱えていましたが、mvn -U clean install
を実行しても問題は解決しませんでした。
私はようやく.m2
フォルダ全体を削除することで問題を解決し、それから私のIDEを再起動すると問題は解決しました!
そのため、ローカルのMavenリポジトリに互換性がないか問題があるために、問題が発生することがあります。
私は同様の問題を抱えていました。私の場合は、.m2/repositoriesフォルダーのtestngのバージョンが壊れていましたが、それを削除して再びmavenを更新したところ、すべてうまくいきました。
あなたのワークスペースパスに行き、あなたのプロジェクトフォルダの中に行きなさい
次のコマンドを実行
mvn -Uクリーンインストール
あなたが好きに似たマッサージを見れば:
プロジェクトの依存関係を解決できませんでした:war:0.0.1-SNAPSHOT:com.Sun.jersey:jersey-server:jar:1.9で依存関係の収集に失敗しました
その後、次のコマンドを入力してください。
エクスポートMAVEN_OPTS = -Dhttps.protocols = TLSv1、TLSv1.1、TLSv1.2
それから再度命令を与えなさい
mvn -Uクリーンインストール
これで、エラーがなくなったことがわかります。
今きれいにし、mavenプロジェクトを構築します。
このエラーは基本的に、Mavenがローカルリポジトリから特定の依存関係を読み取ることができなかったことを言っています。 jarファイルが正しくダウンロードされなかったために起こることがあります。だから、あなたのMavenのローカルリポジトリに行き、。lastUpdated拡張子ファイルがないことを確認してください。
私はMavenを初めて使ってSTS Eclipseを使い始めました。私がセットアップしたプロジェクトには、すでに独自のsettings.xmlがありました。その場合は、実行設定でsettings.xmlファイルを更新してください。
pom.xmlを右クリックし、[別のユーザーとして実行] - > [実行構成]をクリックします。
「ユーザー設定」と表示されている場所で、「ファイル」ボタンをクリックしてsettings.xmlを追加します。
これはあなたのプロジェクトに固有のものだと思いますが、私の "目標"は "クリーンインストール"に設定されており、 "スキップテスト"をチェックしました。
私はEclipseでこの問題を抱えていました、mvn -U clean install
はうまくいきませんでしたが、プロジェクトを右クリックしてMaven-> Update Projectを選択することでそれを修正しました。