0

Java プロジェクトでIvyの動的リビジョンを効果的に使用する方法を理解するのに問題があります。

現在、次のレイアウトがあります。

lib-a
revision: 1.0.0
status: release
dependencies: none

lib-b
revision: 2.0.0
status: release
dependencies: lib-a, rev 1.0.0

project-a
revision: 3.0.0
status: release
dependencies: lib-b, rev 2.0.0

project-b
revision: 4.0.0
status: release
dependencies: lib-b, rev 2.0.0

つまり、私は常にステータスを保持し、release明示的なバージョン番号を使用しています。lib-a開発中に変更する場合、たとえばlib-a、これは非常に苦痛です。

変更を に保存lib-aし、ivy ファイルのリビジョンを に更新し1.0.1て小さな変更を加えます。次に、lib-a のリビジョン 1.0.1 を発表するために、lib-b の依存関係を更新する必要があります。これで、実行可能ファイルであり、実行する必要がある統合テストが含まれているlib-bためproject-a、のリビジョンを更新できます。project-a

lib-b2 番目の方法は、更新された依存関係を同じバージョンで再公開することです。これは通常、コマンドラインの ant で機能しますが、ivy-beansプラグインを使用した NetBeans では機能しません。彼らはまだアイビーファイルのキャッシュされたバージョンを使用しているlib-b.ので、それを機能させるにはローカルキャッシュにクリーンアップする必要があります。

すべてのプロジェクトで、SVN リポジトリにある共通build-ivy.xmlの ant スクリプトを使用しています。各プロジェクトbuild.xmlのルートには、ほとんどの場合単にbuild-ivy.xml. 必要なタスクが追加または上書きされることがあります。ここここで、ソリューションが動的リビジョンを使用している可能性があることを読みました。私が理解している限り、すべてのivyファイルのリビジョンをに設定し、すべてのivyファイルintegration-latestのステータスをintegration. その後、ivy は常に最新バージョンを自動的に解決します。しかし、モジュールのリビジョンを何に設定すればよいでしょうか? 完全に省略?リリース バージョンを作成するにはどうすればよいですか? すべてのアイビー ファイルを変更し、ステータスをreleasereleaseまたは、可能であればステータスを上書きしてモジュールを公開する前に、配信タスクを実行しますか?

4

1 に答える 1

1

Ivy のマルチモジュール プロジェクトに関する次のチュートリアルを読むことをお勧めします。

ANT ビルドは従来、大規模でモノリシックです。あなたがする必要があるのは、大規模なプロジェクトを一連の小さなビルドに分割する Maven の方法をエミュレートすることです。各サブビルドは、そのアーティファクトを ivy のローカル リポジトリに公開します。

Ivy には、この種の構造に役立つタスクがたくさんあります。

  • buildlist - 全体のメイン ビルド ファイルから呼び出されます。各サブモジュールの ivy.xml を調べて、適切なビルド順序を決定するために使用します (一部のモジュールは他のモジュールに依存しています)。
  • buildnumber - すでに公開されているものを調べて、シーケンス内の次のビルド番号を生成します
  • publish - アーティファクトをローカル リポジトリ (または、ivysettings.xml ファイルで構成されている場合は外部リポジトリ) にプッシュします。
于 2013-04-19T17:58:52.830 に答える