老項目用的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官方相關文檔