Closed
Description
This plugin introduces a couple of problems with the build:
- it does not handle the Gradle task avoidance api correctly (creating unrequited tasks immediately)
- it uses a bunch of deprecated Gradle apis
- it introduces a huge performance overhead when applied the first time in the build (see https://gradle-enterprise.elastic.co/s/ljk7lj64pdvai/performance/configuration?focused=700&openScriptsAndPlugins=WzFd)
The best fix IMO would be to get a new clean plugin on top of the forbidden-api project as the project does not support new Gradle versions and is designed to be build with ant + ivy and parts of the shortcomings described above are caused by that design decision. Also mixing the tool itself and the plugin in one jar is not a good design pattern.
As I can see it, in our build we configure the forbiddenApis
tasks directly and do not use the provided plugin extension at all. On option to fix the configuration time issue would be to wire these tasks per sourceSet ourselves in our own plugin. This will not fix the use of deprecated Gradle API in these task implementations.