Recently, I’ve been debugging some code where there was an attempt to set an another
Property which were in the meantime implicitly set as final after tasks started to be executed. I understand the new lazy configuration has its own advantages, but regarding to the documentation (of 6.0.1):
Calling this method makes a property instance unmodifiable from that point on and any further attempts to change the value of the property will fail. Gradle automatically makes the properties of a task final when the task starts execution.
I wonder, if there is a way to detect those places (e.g. by settings some switching in Gradle) by logging them or just failing the execution (looking at the code rather not)? Probably it could have also some performance impact and I’m not sure how many people deal with that problem. Alternatively, maybe it would be good to at least change documentation from
will fail to
will silently fail to make the behavior more clear?