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.
28 Sep 17 17f0f3ce6270f4442789514d6bbc280904a9a1bb
Some simplifications to the Ivy and Maven metadata parsing. Don't extract and persist the `description` and `publicationDate` properties for Ivy and Maven as these values are not required for dependency resolution. Incremented the cache version to reflect this change.
Removed some dead code that attempted to include a `description` in a generated ivy.xml, as there is no way to specify this in the Gradle DSL.
Moved some Maven metadata properties from constructor parameters to mutable properties.
27 Sep 17 d57fc84edff773bc0738fee6815d026cb0c34a74