web-dev-qa-db-ja.com

Nexus / Maven-...のPOMがありません。依存関係情報がありません

私のmaven Javaプロジェクトをビルドしているときに、「...のPOMがありません。依存関係情報がありません」のような一連の警告に直面しています。

アーティファクトは、当社がホストするNexusサーバーに保存されます。問題をクリーンアップして、最後の2つのリリースのみを維持するために、Nexusで「リポジトリからのリリースの削除」にタスクをスケジュールした後に問題が始まりました。

そのため、以前に削除されたリリースに対して次の警告が表示されます。

[WARNING] The POM for xpto:jar:jar:8.16.1 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.17.0 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.18.0 is missing, no dependency information available
[WARNING] The POM for xpto:jar:jar:8.19.0 is missing, no dependency information available

多くのコンポーネントプロジェクトがあり、リリースが定数である場合、これらのコンポーネントを使用するいくつかのプロジェクトをコンパイルすると、そのような多くの警告が表示されます。

これらの警告を回避する方法を提案したり、依存関係を再解決したり、インデックスを再作成したりできるクライアント側でいくつかの目標を実行したりしますか?

よろしく、

7
Danilo Muñoz

リリースは使い捨ての場合があります

上記の記事で説明しているように、ビジネスによっては、古いリリースを独自のリポジトリに保存する必要がない場合があります。私はこのシナリオに含まれています。

たとえば、私のコンポーネントプロジェクトからの最後の2つのリリースのみを維持するには、maven [WARNING]メッセージを回避するために、いくつかの手順に従う必要があります。

1.リポジトリからリリースを削除する

リポジトリにタスクを追加して、nリリースのみを維持する必要があります。これは次の方法で実行できます。

  • Sonatype Nexus>管理>スケジュールされたタスク>追加に移動します
  • 「タスクタイプ」を「リポジトリからのリリースの削除」に設定します
  • 独自のパラメーター(Eメール、繰り返しなど)をセットアップする

2. Mavenメタデータファイルを再構築する

この質問の「穴の中の問題」は、Mavenメタデータファイル(maven-metadata.xml)を再構築することです。いったんそれらが古いリリース情報を維持するようになると、再構築されるまでです。これは次の方法で実行できます。

  • Sonatype Nexus>管理>スケジュールされたタスク>追加に移動します
  • 「タスクタイプ」を「Reven Mavenメタデータファイル」に設定します
  • 独自のパラメーター(Eメール、繰り返しなど)をセットアップする
  • 注意:このタスクは、「リポジトリからのリリースの削除」の後に実行する必要があります

3.ローカルリポジトリ

ここで、ローカルリポジトリはメタデータファイルが更新されたことを認識する必要があります。これは次のパラメーターで実行できます。

  • mvn -U:

    -U、-update-snapshotsリモートで更新されたリリースとスナップショットのチェックを強制します

  • 例えば:

    mvn -Uクリーンパッケージ

参考文献

5
Danilo Muñoz

settings.xmlを確認します。つまり、bashでそのようにエクスポートします。

export MVN_SETTINGS=~/.m2/settings.xml 

この警告は通常、インターネットから依存関係をダウンロードできない場合に表示されます。

2
B. Carpenter