Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to accept Gradle ToS for `build --scan` automatically and still manage to run build without a scan?

I am using Gradle 4.6 which allows me to run build scans using the --scan option without having to explicitly apply or download extra plugins which is great. However this forces me to add the buildScan Terms of Service acceptance in my build.gradle file.

like this:

buildScan {
    termsOfServiceUrl = 'https://gradle.com/terms-of-service'
    termsOfServiceAgree = 'yes'
}

When I subsequently run gradle build without the --scan option I get the following error message:

> Could not find method buildScan() for arguments…

I don’t want to have to modify the build.gradle file every time I want/dont want a scan. I don’t want to apply the plugin explicitly (firewall issues) and I don’t get the chance to accept the of Terms of Service on the command line which I have also seen documented.

Can anyone tell me what I am doing wrong?

This question is formatted like a quote because it was already asked on Gradle Forums. But it's left without answer. I'm using Gradle 4.10.2 and the problem is still actual. I decided to draw more attention to this problem here.

like image 486
naXa Avatar asked Oct 03 '18 22:10

naXa


2 Answers

Just test the existence of buildScan

if (hasProperty('buildScan')) {
    buildScan {
        termsOfServiceUrl = 'https://gradle.com/terms-of-service'
        termsOfServiceAgree = 'yes'
    }
}
like image 196
ToYonos Avatar answered Sep 17 '22 20:09

ToYonos


You just need to add the above block of code in the buid.gradle(Project) file and the build scan will automatically published. enter image description here

In the Jenkins, you will the link with results of the build scan. enter image description here

like image 34
padPad Avatar answered Sep 17 '22 20:09

padPad