3

マルチプロジェクト ビルドの一部として 2 つのプロジェクトがProjectAありProjectBます。

ProjectAcompile依存していProjectBます。ビルド番号の自動インクリメントもあり、各プロジェクトにはversions.json最新のビルド番号を含むファイルが含まれています。でこのビルド番号をインクリメントする gradle スクリプトがありますgradle publish

これで、 に変更が加えられProjectAgradle clean publishが実行されると、ProjectB変更されていないにもかかわらず、 も Nexus にデプロイされます。どうすればこれを防ぐことができますか?

このプロセスは CI サーバーによって発生し、常に新しいクローンから実行されるため、ビルドは常にクリーンから実行されることに注意してください。したがって、次のようなソリューションは機能しません。

publish {
  onlyIf { jar.didWork }
}

アーティファクトがアップストリームの最新コピーと異なる場合、アーティファクトが Nexus にのみ公開されるようにするにはどうすればよいですか? おそらく、これを解決する 1 つの方法はpublish、依存プロジェクトで を実行しないことです。しかし、どのように?

4

0 に答える 0