3

アーティファクトを Nexus Maven リポジトリに公開する Ivy プロジェクトがあります。次に、これらの jar を依存関係として使用できるようにするには、他の Maven プロジェクトが必要です。Ivy に pom.xml を jar と共に作成してアップロードさせることができましたが、これは正常に機能しています。問題は、Ivy を使用して新しい SNAPSHOT バージョンを公開するときに、Maven プロジェクトが新しいスナップショットの依存関係を取得しないことです。

mvn clean install -U

Ivy が maven-metadata.xml ファイルをリポジトリに公開していないことに気付きました。これが問題だと思いますか? もしそうなら、アイビーにこれを生産させる方法はありますか?

4

2 に答える 2

3

Ivy は、依存関係を解決するときにこのファイルを読み取るように構成できますが ( ibilioリゾルバーの「m2compatible」属性を参照)、発行タスクはこのファイルを作成または更新しません.....

「maven-metadata.xml」ファイルを作成および更新するのは、クライアントの仕事のようです....これは、Maven リポジトリの文書化されていない機能です。(誰かが説明されている場所を見つけることができれば、おそらくツタのバグが修正される可能性があります)。

標準的な回避策は、Nexus タスクを定期的にスケジュールしてメタデータ ファイルを再生成することです。見る:

より極端な解決策は、Maven ANTタスクを使用して公開ステップを実行することです....

スナップショットのリビジョンに関する解説

最近、私はスナップショット リリースは努力する価値がないという結論に達しました。継続的デリバリーは、各ビルドが潜在的にリリース可能であるという概念を促進し、ivy には各ビルドが一意であることを保証する気の利いたbuildnumberタスクがあります。ビルドの種類が 1 種類しかない場合、ビルド プロセスがより簡単になることがわかりました。

スナップショットは、Maven を使用して開発ビルド成果物を他のプロジェクトと共有する場合にのみ必要な機能です。IMHO ivy の動的リビジョン機能は、ビルド時に「最新の」リビジョンを解決するため、より強力です。次の例で、deliver タスクが makepom タスクどのように組み合わされているかを確認してください。

于 2013-04-03T20:13:51.120 に答える
1

同様の問題があり、次の Web サイトが解決に役立つことがわかりました 。 -ツタ/

基本的に使う<ibiblio name="Maven Central" m2compatible="true" useMavenMetadata="false" root="http://…" />

于 2013-05-22T01:19:00.217 に答える