Не публикуйте артефакт в Nexus, если проект не изменился

У меня есть два проекта как часть моей многопроектной сборки, ProjectA а также ProjectB,

ProjectA имеет compile зависимость от ProjectB, У меня также есть автоматическое увеличение номера сборки, при этом каждый проект содержит versions.json файл, содержащий последний номер сборки. У меня есть скрипт gradle, который увеличивает этот номер сборки на gradle publish,

Теперь, когда изменения сделаны ProjectAи gradle clean publish выполняется, ProjectB также развернут на Nexus, даже если он не изменился. Как я могу остановить это?

Обратите внимание, что сборка всегда выполняется с чистого листа, так как этот процесс выполняется нашим CI-сервером и всегда выполняется с нового клона, поэтому решение, подобное следующему, не работает:

publish {
  onlyIf { jar.didWork }
}

Как я могу гарантировать, что артефакт будет опубликован только в Nexus, если он отличается от последней копии вышестоящего? Возможно, один из способов решить эту проблему - не запускать publish на зависимом проекте. Но как?

0 ответов

Другие вопросы по тегам