build-tool-roadmap
build-tool-roadmap copied to clipboard
Support for plugin defined dependencies block
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:
- The API is static and type-safe. Instead of accepting an
Object, each supported dependency notation has an explicit method. - 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 useimplementation(...). - Syntax and behavior differences between Kotlin DSL, Groovy DSL and the Java API are eliminated.
- The
dependenciesblock 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.