トランクまたは特定のブランチ上のすべてのプロジェクトが、基本クラスの jar に対して同じバージョン番号を持つように、Ivy をセットアップします。たとえば、トランクが設定されているため、すべての jar は 5.4 であり、これらの jar を使用するすべてのプロジェクトは 5.4 jar を要求します。
リリース 5.5 で導入される特定の機能のために、トランクから分岐しました。以前は、そのブランチのリビジョンをリビジョン 5.5 として設定していました。Maven リポジトリに移動し、5.4 jar をバージョン 5.5 に複製して、プロジェクトをビルドできるようにします。このフィーチャー ブランチの jar は、5.5 jar としてリポジトリに配置されます。
しかし、これは問題を引き起こしました。トランクがリビジョン 5.3 として設定されていると想像してください。この機能はリビジョン 5.5 で完全になると予想されます。5.3 jar を 5.5 jar として複製し、開発者にフィーチャー ブランチでの作業を依頼します。
ここで、トランクのリビジョンを 5.4 にするとします。バージョン 5.4 では特定の jar が変更されていますが、必ずしもフィーチャー ブランチでは変更されていません。現在、トランクの jar には、フィーチャー ブランチでは見つからない変更が含まれています。その後、トランクをバージョン 5.5 に移行し、ブランチの変更をトランクにマージします。
現在、プロジェクトは、リビジョン 5.3 に実際に基づいている特定の 5.5 jar を使用しています。5.4 の変更点はありません。
これを回避するために、機能ブランチに数値以外のリビジョンを与えるという新しい戦略を試みています。このようにして、ブランチをトランクにマージする準備ができたら、5.5 用の 5.4 jar の最新バージョンを複製します。次に、マージされてトランクに戻されると、再構築が発生します。
問題は、コンフリクト マネージャーです。ブランチには「fb-foo」、トランクには「5.4」のバージョンがあります。特定の jarfoo.jar
がブランチで指定されている場合 (リビジョンfb-foo
と要求された別の jar もその特定の jar を要求しますが、バージョン 5.4 の場合、5.4 バージョンをプルダウンします。fb-foo
このブランチのプロジェクトのバージョンをプルダウンすることをお勧めします) .
マスターのivysettings-public.xmlファイルを変更してみました:
<ivysettings>
<resolvers>
<ibiblio name="public"
m2compatible="true"
checkmodified="true"
root="http://buildl01.tcprod.local/artifactory/libs-release" />
</resolvers>
<latest-strategies>
<latest-revision name="mylatest-revision" usedefaultspecialmeanings="false">
<specialMeaning name="fb-foo" value="99"/>
</latest-revision>
</latest-strategies>
</ivysettings>
ただし、Ivy のレポートによると、 version5.4
は依然として version よりも優先されていfb-foo
ます。
これを変更する方法はありますか?5.4-foo
バージョン番号として使用するとどうなりますか?