【问题标题】:How to use gradle 'api' dependency如何使用 gradle 'api' 依赖
【发布时间】:2019-05-12 13:11:27
【问题描述】:

我尝试在我的项目中使用 'api' 依赖关键字,但我收到此错误消息说它找不到方法 api()

我在一个新项目上尝试过。这是 build.gradle 文件:

plugins {
    id 'java'
}

group 'com.test'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.12'
    api group: 'com.google.guava', name: 'guava', version: '27.0.1-jre'
}

我正在使用 gradle V4.9。 当我运行 gradle build 我得到这个:

Could not find method api() for arguments [{group=com.google.guava, name=guava, version=27.0.1-jre}] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler

如果我将 'api' 替换为 'implementation' 一切正常

我在这里缺少什么? 有什么需要做的设置吗?

【问题讨论】:

    标签: java gradle


    【解决方案1】:

    api 配置来自java-library 插件,在您的构建脚本中您刚刚应用了java 插件。见https://docs.gradle.org/current/userguide/java_library_plugin.html

    标准 Java 插件和 Java 库插件之间的主要区别在于后者引入了向消费者公开的 API 的概念。库是一个 Java 组件,旨在供其他组件使用。这是多项目构建中非常常见的用例,但在您有外部依赖项时也是如此。

    只需应用 java-library 插件(扩展 java 插件),它应该可以工作:

    plugins {
        id 'java-library'
    }
    

    【讨论】:

      猜你喜欢
      • 2021-02-28
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-02
      • 2014-09-21
      • 2017-11-26
      相关资源
      最近更新 更多