Changed how the dependency resolution engine decides whether the artifacts of a 'changing' module may have changed so that the check is now more accurate. One mechanism that is used is to consider the hash of the metadata, and if this has changed then look for other changes. Previously, the hash of the persisted module metadata (the output of parsing) would be used. However, during parsing information is discarded, meaning that the descriptor file can change in the repository but still be considered unchanged by Gradle.
Now, the hash of the content of the module descriptor file is used instead, meaning that any change to the descriptor (whitespace, comments, publication date, whatever) will be considered a change to the module.
This change is also a step towards properly considering all of the inputs to metadata parsing, such as parent or imported poms, included ivy.xml files or Gradle module metadata files, as the parser is now able to communicate this to the rest of the dependency resolution engine.