The "retrieve" task will not retrieve files (artifacts) whose file modification date is greater than of the file in the repository (in the "resolver"), not even if sync="true". This way the target directory goes out of sync if (a) the module is downgraded in the repository or (b) the developer has overwritten the artifact manually when experiencing with something. Thus the only way to keep the target directory in sync is deleting it before retrieving, but of course that means suboptimal performance, and makes sync="true" useless anyway. Simply, a file should be retrieved if the date (or size!) is different than in the repository.