gradle multiproject: избегайте публикации модулей, когда не обнаружено изменений исходного кода
У меня есть многопроектная сборка Gradle со следующими подпроектами: sample-api sample-common, который зависит от sample-api sample-server, который зависит от sample-api и sample-common.
Я хотел бы избежать создания / публикации sample-api.jar, sample-common.jar или sample-server.ear, если исходный код не был изменен (svn diff) с момента предыдущего выпуска. sample-api.jar и sample-common.jar будут использоваться внешними клиентами, и я хочу избежать ненужных сборок / публикаций, скажем, для nexus repo. Весь проект построен с Gradle от Дженкинса.
В настоящее время я знаю, как сделать sample-common зависимым от sample-api.jar, если в исходном коде sample-api нет изменений, и в противном случае от проекта sample-api. Но мне также нужно избегать сборки sample-common, если sample-api и sample-common не имеют изменений; то же самое с sample-сервером - нет сборки, если ничего не изменилось в sample-api+sample-ocmmon+sample-server. Я хочу это рекурсивно.
Должно быть довольно стандартное решение этой проблемы?
Благодарю.