Как автоматически принять Gradle ToS для `build --scan` и все же запустить сборку без сканирования?
Я использую Gradle 4.6, который позволяет мне запускать сканирование сборки, используя
--scan
вариант без необходимости явно применять или загружать дополнительные плагины, что здорово. Однако это заставляет меня добавитьbuildScan
Условия предоставления услуг принимаются в моем файле build.gradle.
как это:
buildScan {
termsOfServiceUrl = 'https://gradle.com/terms-of-service'
termsOfServiceAgree = 'yes'
}
Когда я впоследствии бегу
gradle build
без--scan
Вариант я получаю следующее сообщение об ошибке:> Could not find method buildScan() for arguments…
Я не хочу изменять файл build.gradle каждый раз, когда я хочу / не хочу сканировать. Я не хочу применять плагин явно (проблемы с брандмауэром), и у меня нет возможности принять Условия использования в командной строке, которые я также видел документированными.
Может кто-нибудь сказать мне, что я делаю не так?
Этот вопрос отформатирован как цитата, потому что он уже задавался на форумах Gradle. Но это осталось без ответа. Я использую Gradle 4.10.2 и проблема все еще актуальна. Я решил обратить больше внимания на эту проблему здесь.
3 ответа
Просто проверить существование buildScan
if (hasProperty('buildScan')) {
buildScan {
termsOfServiceUrl = 'https://gradle.com/terms-of-service'
termsOfServiceAgree = 'yes'
}
}
Это не может быть хорошим или правильным решением, но вот один из обходных путей: используйте try
/catch
проглотить ошибку, что-то вроде:
try {
buildScan {
termsOfServiceUrl = 'https://gradle.com/terms-of-service'
termsOfServiceAgree = 'yes'
}
} catch (MissingMethodException e){
// This isn't the exception you're looking for
}