You are perfectly right, these changes happened in 5.1 but were not properly reflected in documentation.
In short, instead of classifier which is a simple field, you should use archiveClassifier which is a Property and thus enables Gradle to do more. For example if you were to set this value by using a task output, Gradle could infer the task dependency automatically. See javadoc for more features.
So all your code that is:
classifier = 'foo'
needs to be changed to:
archiveClassifier = 'foo' // DSL equivalent to archiveClassifier.set('foo')
I filed https://github.com/gradle/gradle/issues/8217 to follow up on this.