Newbie Groovy question: looking for a rule of thumb

I’m not a newbie anymore, but some things I’ve glided by without trying to understand - just get the @#$%^ thing to work has been my mantra. Now I’d like to understand a really basic point that has annoyed me. Here is a fragment of build.gradle

sourceCompatibility = 1.6
targetCompatibility = 1.6
war.archiveName 'My.war'

The following does not work.

sourceCompatibility 1.6
targetCompatibility 1.6
war.archiveName 'My.war'

The question is, is there a rule of thumb for knowing (preferably in advance) when a property setting requires the equals operator and when it does not? In this case the sourceCompatibility and targetCompatibility properties require the equals whereas the war.archiveName does not.

Good style is to allow both, especially if lists/maps are involved. ON a task there is some code, I believe, that will redirect taskName.propName(value) to taskname.setPropName(value).

But… sourceCompatibility is implemented not on a task but on JavaPluginConvention, which does not have any means of handling missing methods.