Какая разница между компиляцией, testCompile и предоставлена ​​в зависимости от gradle

Я использую студию android и в структуре проекта → вкладки зависимостей следующие параметры, которые я могу увидеть:

  • Compile
  • При условии,
  • APK
  • Тестовая компиляция
  • Debug Compile
  • Снятие компиляции

мой вопрос: какая разница между компиляцией, testCompile и предоставлена ​​в gradle зависимости

Ответы

Ответ 1

compile - это группа зависимостей, необходимых для создания вашего приложения, а testCompile - это группа зависимостей, которые вам нужны только для тестирования.

Посмотрите пример в этом build.gradle (взято из здесь)

apply plugin: 'java'

repositories {
    mavenCentral()
}

dependencies {
    compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

Это указывает, что для создания вашего кода требуется hibernate-core, но junit (структура тестирования) требуется только для тестирования. Поскольку он не нужен во время выполнения, он не будет включен в выпущенный пакет.

Ответ 2

Вам следует прочитать Руководство пользователя, которое поставляется с дистрибутивом, или прочитать его в Интернете http://gradle.org/documentation/.

Короче говоря, "компиляция" предназначена для зависимостей для вашего "основного" кода "testCompile" для ваших тестовых классов, а "предоставленный" используется для зависимостей, которые используются во время компиляции, но не хранится в вашем файле WAR ( потому что ожидается, что они будут доступны в вашем веб-контейнере).

Следующая публикация может иметь соответствующую информацию: Компилировать, предоставить, APK - область зависимостей Android.