自分の個人プロジェクトにantをapache ivyで使用するビルドプロセスを修正しようとしています。これらは、いくつかの共有モジュールと、共有モジュールに依存するいくつかのアプリケーションモジュールで構成されています。この記事のために、共有モジュール(common
)とアプリケーションモジュール(application
)が簡略化され、common
に依存しているとしましょう。 application
はの公開バージョンに依存し、一般的には中間アーティファクトを使用してビルドするためにIvy/Antを使用する方法
workspace/common
workspace/application
:
svn_repo_1/common/trunk
/branches
/tags
svn_repo_2/application/trunk
/branches
/tags
私はフラットな構造で、共通のワークスペースに関連するリビジョンをチェックアウト:各モジュールは、それ自身の効果的なSVNリポジトリを持っていますcommon
であるので、application
をビルドするときにcommon
をビルドする必要はありません。私はその後、application
ように私のワークスペースからの最新common
のビルドに依存するだろうしかし
、私はapplication
によって必要とされるcommon
に新しい機能を追加する必要があり、(私のリポジトリに共通公開する必要はなし)。
私はこれがlatest.integration
の意味であると仮定しました(つまり、application
のivy.xmlを変更して、共通のリビジョンの最新の積分を指定しています)。私の意図は、アプリケーションをビルドする前にビルドする必要があったローカルモジュールを見つけるためにivy buildlist
タスクを使用することでした。ただし、アプリケーションのivy.xmlファイルにlatest.integrationまたはその他の公開されたリビジョンが指定されているかどうかにかかわらず、buildlist
タスクにcommon/build.xmlエントリが含まれているように見えるため、これは機能しません。
私はどんな提案もありがとう。私はアイビーのドキュメンテーションとサンプルに苦労しているので、実際の例も参考になります。注:ここではMavenのソリューションに興味はありません。
応答をありがとう。中間ビルドを構築している間に 'common'を公開したくない私の理由は、私がメインリポジトリにivysvnを使用しているからです。公開された成果物は別のsvnリポジトリにチェックインされます。私はcommon-latest.integration.jarが継続的にコミットされることを望んでいません。私はあなたの複数のリポジトリの提案の音が好きです。 common-latest.integration.jarがローカルのディレクトリリポジトリから解決されている間に、メインのivysvnリポジトリのサードパーティの成果物がそこから解決されるように、両方のリポジトリを使用して解決できるでしょうか? – zorgbargle