マルチプロジェクト ビルドの一部として 2 つのプロジェクトがProjectA
ありProjectB
ます。
ProjectA
にcompile
依存していProjectB
ます。ビルド番号の自動インクリメントもあり、各プロジェクトにはversions.json
最新のビルド番号を含むファイルが含まれています。でこのビルド番号をインクリメントする gradle スクリプトがありますgradle publish
。
これで、 に変更が加えられProjectA
、gradle clean publish
が実行されると、ProjectB
変更されていないにもかかわらず、 も Nexus にデプロイされます。どうすればこれを防ぐことができますか?
このプロセスは CI サーバーによって発生し、常に新しいクローンから実行されるため、ビルドは常にクリーンから実行されることに注意してください。したがって、次のようなソリューションは機能しません。
publish {
onlyIf { jar.didWork }
}
アーティファクトがアップストリームの最新コピーと異なる場合、アーティファクトが Nexus にのみ公開されるようにするにはどうすればよいですか? おそらく、これを解決する 1 つの方法はpublish
、依存プロジェクトで を実行しないことです。しかし、どのように?