I’ve looked this up on Google, but there doesn’t seem to be any documentation on the Gradle site, or even people discussing this in forums.
I have Gradle installed on my Mac (10.8.2, ML) and am building a custom build.gradle script. When I call println(), I would like to make the output colored (like errors in red, info in green, etc). How do I do this in my gradle build script?
Here’s an example of code I have so far:
def proc = "echo `DATE`".execute()
proc.in.eachLine {line -> println line}
proc.err.eachLine {line -> println 'ERROR: ' + line}
On this gradle forum, they talk about various styles like normal, header, userinput, identifier, description, progressstatus, failure, info, and error, as part of the StyledTextOutput class. It looks like this is an internal class. Is there a simple way to tap into the color printing powers of Gradle/Groovy without importing a lot of packages?
Found the answer! According to this gradle forum post, there’s no public interface for coloring the output of the logger. You are free to use the internal classes, but those may change in future versions. In the gradle script, put at the top:
Older Gradle:
Gradle 3.3+:
(I still haven’t figured out how to move this to the init.gradle file.) Then shortly after, define
I’m still not sure what needs to be in the create method’s string (it doesn’t seem to affect anything yet). Then later in your task,
This should work with all the categories: normal, header, userinput, identifier, description, progressstatus, failure, info, and error. An additional step if you want to customize the color of each category, add the following to an init.gradle file in your ~/.gradle directory (or other options):
and then replace the “error” category with any from the above list.