解决Gradle报错Could not find method api() for arguments....

老项目用的Gradle引入依赖用的compile关键词,升级Gradle 7.x版本后,这个关键词被启用了。

查了下文档,如果项目的Jar包要对外暴露,就用api,如果引用的jar包只有本项目自己用,就用implementation。

核心,公共模块的jar包引用改成了api,但是报错了

A problem occurred evaluating project ':inkyi-common'.
> Could not find method api() for arguments [org.springframework.boot:spring-boot-starter-web:2.6.1] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

意思就是说:没有api这个方法,百度了好久都说升级Gradle3.X版本,这不扯淡吗?
看了下官网,第一句就给出了答案:api属于java-library里面的方法
将build.gradle中的

plugins {
    id 'java'
}

改为

plugins {
    id 'java-library'
}

就可以了,坑!!!!!!!!!!!!!!!!!
Gradle官方相关文档

原文地址:https://www.cnblogs.com/inkyi/p/15644920.html