asciidoctor-gradle-plugin icon indicating copy to clipboard operation
asciidoctor-gradle-plugin copied to clipboard

Avoid SelfResolvingDependency

Open jvandort opened this issue 7 months ago • 0 comments

SelfResolvingDependency has been deprecated in Gradle 8.x and will be removed in Gradle 9.0

BaseNpmSelfResolvingDependency implements this API, as well as Dependency, and SelfResolvingDependencyInternal.

Implementing Gradle interfaces like Dependency is asking for trouble, as these APIs are subject to change in Gradle major versions. Plus, implementing these APIs often require also implementing internal types.

BaseNpmSelfResolvingDependency will be impacted by multiple breaking changes in Gradle 9.0:

  • https://docs.gradle.org/current/userguide/upgrading_version_8.html#deprecate_self_resolving_dependency
  • https://docs.gradle.org/current/userguide/upgrading_version_8.html#deprecated_content_equals

This commit removes all references to SelfResolvingDependency, and all references to BaseNpmSelfResolvingDependency, which implements SelfResolvingDependency. Instead, it uses public Gradle APIs to create a FileCollectionDependency which lazily installs NPM dependencies.

jvandort avatar Mar 19 '25 18:03 jvandort