gradle / build-tool-roadmap

Gradle Build Tool roadmap
https://roadmap.gradle.org/
41 stars 6 forks source link

Support for plugin defined dependencies block #79

Closed big-guy closed 5 months ago

big-guy commented 10 months ago

The top-level dependencies block is a very opaque and non-discoverable API.

With test suites, we introduced a new dependencies block that addresses the shortcomings of the top-level block:

  1. The API is static and type-safe. Instead of accepting an Object, each supported dependency notation has an explicit method.
  2. The list of available scopes are static and named for their purpose without a global name. Instead of integTestImplementation(...) referring to the implementation dependencies for a source set named "integTest", users can always use implementation(...).
  3. Syntax and behavior differences between Kotlin DSL, Groovy DSL and the Java API are eliminated.
  4. The dependencies block is embeddable in other extensions.

The goal of this roadmap item is to open up this API and allow third party plugins to introduce their own dependencies blocks without relying on internal types/APIs.