Gradle Single vs Double Quotes
Solution 1
Gradle build scripts are written in Groovy. Groovy has both double-quoted and single-quoted String literals. The main difference is that double-quoted String literals support String interpolation:
def x = 10
println "result is $x" // prints: result is 10
You can learn more about Groovy String interpolation in this or other Groovy articles on the web.
Solution 2
Yes, you can use one or the other. The only difference is that double-quoted strings can be GStrings, which can contain evaluated expressions like in the following example taken from the Groovy documentation:
foxtype = 'quick'
foxcolor = ['b', 'r', 'o', 'w', 'n']
println "The $foxtype ${foxcolor.join()} fox"
// => The quick brown fox
Solution 3
According to the gradle docs:
Favor single quotes for plain strings in build script listings
This is mostly to ensure consistency across guides, but single quotes are also a little less noisy than double quotes. Only use double quotes if you want to include an embedded expression in the string.
Solution 4
Single-quoted strings are a series of characters surrounded by single quotes. like :
def str='a single quoted string'
println str
Ouput :
a single quoted string
Whereas Double-quoted strings allow us the String interpolation Here, we have a string with a placeholder referencing a local variable:
def name = 'Guillaume' // a plain string
def greeting = "Hello ${name}"
Output : Hello Guillaume
In your code,If you want to print the task name. So in that case, you need to use Double-quotes:
defaultTasks 'clean', 'run'
task clean << {
println 'Default Cleaning!'
}
task run << {
println "Default Running $run.name!"
// here Double Quotes are required to interpolate task-name
}
task other << {
println "I'm not a default task!"
}
Dan W
Detail-oriented Solutions Architect with 10 years of back-end Java experience. Fluent in software engineering methodologies such as testing, debugging, and overall project design.
Updated on February 19, 2022Comments
-
Dan W about 2 years
I'm new to gradle and am currently just trying to follow the tutorials and quite a few times I've seen single and double quotes intermixed. I just wanted to know if there was a difference of when one set should be used over the other. One example of this is section 6.12 of the tutorial - Default tasks:
defaultTasks 'clean', 'run' task clean << { println 'Default Cleaning!' } task run << { println 'Default Running!' } task other << { println "I'm not a default task!" }
So, I would just like to know if I should be paying attention to these differences or if they are inter-changable and I can use either single or double quotes when printing strings in gradle.
-
Peter Niederwieser about 11 yearsDouble-quoted string literals are
GString
s iff they contain a$
. Otherwise, they are plainString
s. -
Dan W about 11 yearsThanks for the clear explanation. But now I have a follow up question, is there any reason to not always use double quotes then?
-
Peter Niederwieser about 11 yearsMostly subjective/situational ones like "looks better", "used to this style from another language", "want to use literal
$
or"
without having to escape them", "easier to type". Many Groovy users seem to prefer single quotes by default. I prefer double quotes because they allow me to add/remove String interpolation without changing the quotes. Also I'm used to double quotes from languages like Java. -
Dave L. almost 4 yearsLooks like that guide and guidance has disappeared.
-
Julian A. almost 4 years@DaveL. Yeah, and I can't find it anywhere else.
-
AlgoRyan almost 4 yearsFound some similar guidance here - groovy-lang.org/style-guide.html "Last but not least, prefer using single quoted strings when you need string constants, and use double quoted strings when you are explicitly relying on string interpolation."
-
Android about 3 yearsimo, mixing is much more noisy than only using double quotes.