Как использовать gradle 'api' зависимость - PullRequest
0 голосов
/ 11 декабря 2018

Я пытался использовать ключевое слово 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' на 'реализация', все работает нормально

Чего мне здесь не хватает?Есть ли какие-либо настройки, которые нужно сделать?

1 Ответ

0 голосов
/ 11 декабря 2018

Конфигурация api происходит от плагина java-library, в вашем скрипте сборки вы только что применили плагин java.См. https://docs.gradle.org/current/userguide/java_library_plugin.html

. Основное различие между стандартным плагином Java и плагином Java Library заключается в том, что последний представляет концепцию API, предоставляемого потребителям.Библиотека - это компонент Java, предназначенный для использования другими компонентами.Это очень распространенный вариант использования в многопроектных сборках, но также при наличии внешних зависимостей.

Просто примените плагин java-library (который расширяет плагин java), и он должен работать:

plugins {
    id 'java-library'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...