2016-02-06 2 views
4

В Gradle в Android Studio я заметил, что предоставление области зависимости необязательно. Например:Что такое область зависимости по умолчанию в Gradle на Android?

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:design:23.1.1' 
      'org.hamcrest:hamcrest-core:1.3' 
      'org.hamcrest:hamcrest-library:1.3' 
} 

Обратите внимание, что в последних двух библиотеках отсутствует область компиляции. Я оставил его пустым, и я все еще мог синхронизировать град. Какова область по умолчанию, если здесь ничего не указано?

ответ

2

Объем - это на самом деле метка для данной конфигурации зависимостей. Это зависит от плагинов градиента, которые вы используете (например: плагин java или плагин для Android). Если вы не добавили какую-либо метку конфигурации, она будет сохранена как немаркированная зависимость. В большинстве случаев, если вам нужна зависимость compile и не добавляйте ярлык, ваша сборка будет ломаться. Если это не нарушает это может быть потому, что:

  • Вы не были на самом деле нуждаются в зависимости
  • Вы используете Gradle плагин, который обрабатывает хорошо немаркированные зависимости
  • Или (что более вероятно), то зависимость уже в кеше сборки или частичной сборки, и поэтому компилятор все еще может найти классы, но будет разорван, если вы очистите проект.

Связанная документация on dependency configuration for gradle

+0

йах я вижу, что вы имеете в виду. Синхронизация Gradle прошла успешно, но когда я пошел на запуск приложения, он говорит, что он не может найти область. Однако очень странно, что синхронизация успешна. Благодарю. – j2emanue

Смежные вопросы