Gradle 5.1 已发布,更新内容如下

Fixed issues

30 issues have been fixed in Gradle 5.1.

  • [#7961] - Gradle 5 fails for manually added ListProperty

  • [#7950] - Scheduled artifact transform fails with "Transformation hasn't been executed yet"

  • [#7878] - TestNG parallel test execution via Gradle fails with "Received a completed event for test with unknown id".

  • [#7873] - Implement fallback mechanism for updating file modification timestamp

  • [#7858] - Document repository content filtering

  • [#7766] - Improve prodived context for artifact transforms

  • [#7729] - Fix deprecation warning when exposing dependencies to artifact transforms

  • [#7648] - Investigate providing context to transforms

  • [#7617] - Incorrect stderr redirection in Tooling API

  • [#7570] - Up-to-date checks for ArtifactTransforms

  • [#7564] - CONSTANT_TIME_FOR_TAR_ENTRIES = 0 causes issues with Java applications

  • [#7511] - Failure in included build's `BuildListener.buildFinished()` listener prevents build scan publication

  • [#7502] - Play 2.4 route compilation errors were silently ignored

  • [#7485] - No value `ListProperty` and `SetProperty` shouldn't allow adding elements

  • [#7381] - Improved declared inputs and outputs for `Sign` task

  • [#7061] - Gradle should always respect the extra attributes when selecting artifacts transforms chains

  • [#6876] - Option can not be applied to Property<String>

  • [#6863] - Add MapProperty type to support lazy configuration of key/value types

  • [#6766] - Inherited configuration exclusions are not published to the POM

  • [#6718] - Artifact transform - prefer suffix chains if they exist

  • [#6632] - Only produce new gradle-wrapper.jar when classes changed

  • [#6453] - Junit 5 parallel test execution via Gradle fails with "Received a completed event for test with unknown id".

  • [#6334] - 4.10 rc1 still outputs quite a bit of transform logs

  • [#5704] - Provide a way to define default values for task properties

  • [#5664] - Public comments for new Task API for configuration time avoidance

  • [#2528] - Support composite builds for `plugins` block

  • [#1369] - Allow matching repositories to dependencies

  • [#8078] - wrapper task fails when the version 5.1 is specified.

  • [#8077] - Gradle 5.1 incompatible change in behaviour of task inputs.files.asFileTree.matching -it doesn't filter

  • [#8074] - Spotbugs plugin compatibility with Gradle 5.1 is fixed

Inherited configuration-wide dependency excludes are now published

Previously, only exclude rules directly declared on published configurations (e.g. apiElementsand runtimeElements for the java component defined by the Java Library Plugin) were published in the Ivy descriptor and POM when using the Ivy Publish Plugin or Maven Publish Plugins, respectively. Now, inherited exclude rules defined on extended configurations (e.g. apifor Java libraries) are also taken into account.

Deprecations

Features that have become superseded or irrelevant due to the natural evolution of Gradle become deprecated, and scheduled to be removed in the next major Gradle version. See the User guide section on the &ldquo;Feature Lifecycle&rdquo; for more information.

The following are the newly deprecated items in this Gradle release. If you have concerns about a deprecation, please raise it via the Gradle Forums.

Setters for classes and classpath on ValidateTaskProperties

There should not be setters for lazy properties like ConfigurableFileCollections. Use setFrom instead.

validateTaskProperties.getClasses().setFrom(fileCollection)
validateTaskProperties.getClasspath().setFrom(fileCollection)

Potential breaking changes

See the Gradle 5.x upgrade guide to learn about breaking changes and considerations when upgrading to Gradle 5.1.

External contributions

We would like to thank the following community members for making contributions to this release of Gradle.