Precendence rules for system properties are illogical

I’ve been testing precedence rules for system properties, and they are the exact opposite of what I would expect.

The order seems to be

  1. gradle home dir (systemProp.prop=…) 2. user home dir

  2. gradle project dir

  3. command line (-Dprop=…)

However, I would expect my invocation of gradle to be able to overwrite any of my file configurations with a command line parameter.

I’m not sure what you mean by 1. and 2. User-specific properties (i.e. gradle user home) win over project-specific ones (i.e. project dir). The fact that command line doesn’t override is a known limitation - I recommend to vote/watch GRADLE-2122.