Не публикуйте артефакт в Nexus, если проект не изменился
У меня есть два проекта как часть моей многопроектной сборки, ProjectA
а также ProjectB
,
ProjectA
имеет compile
зависимость от ProjectB
, У меня также есть автоматическое увеличение номера сборки, при этом каждый проект содержит versions.json
файл, содержащий последний номер сборки. У меня есть скрипт gradle, который увеличивает этот номер сборки на gradle publish
,
Теперь, когда изменения сделаны ProjectA
и gradle clean publish
выполняется, ProjectB
также развернут на Nexus, даже если он не изменился. Как я могу остановить это?
Обратите внимание, что сборка всегда выполняется с чистого листа, так как этот процесс выполняется нашим CI-сервером и всегда выполняется с нового клона, поэтому решение, подобное следующему, не работает:
publish {
onlyIf { jar.didWork }
}
Как я могу гарантировать, что артефакт будет опубликован только в Nexus, если он отличается от последней копии вышестоящего? Возможно, один из способов решить эту проблему - не запускать publish
на зависимом проекте. Но как?