Зависимости build.gradle: fileTree против проекта против простой строки - PullRequest
0 голосов
/ 27 мая 2020

Я оказался JS разработчиком, изучающим RN.

Я создавал приложение на RN, используя mapbox.

В конфигурации наткнулся на build.gradle.

Я погуглил о build.gradle, чтобы узнать, что цель - указать конфигурацию сборки библиотеки и модуля? (Это правильно?)

Я просматривал примечания по установке и увидел что-то вроде этого (нам нужно изменить конфигурацию, если наш RN <0.60) </p>

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.facebook.react:react-native:+"  // From node_modules
+   implementation project(':@react-native-mapbox-gl_maps')
}

В зависимостях я вижу у них есть реализация, написанная в трех разных типах

  1. Используя com com.android.support:appcompat-v7

  2. Используя Project implementation project(':@react-native-mapbox-gl_maps')

и

using fileTree

fileTree(dir: "libs", include: ["*.jar"])

Я пытался найти в Google что-то вроде разницы между проектом и com в реализации в build.gradle, но не смог найти ничего полезного.

Может ли кто-нибудь помочь мне объяснить разницу между указанными выше зависимостями?

1 Ответ

1 голос
/ 27 мая 2020
  1. Это удаленная двоичная зависимость. Пример, когда вы переносите sh свою библиотеку в некоторый облачный репозиторий (Google, JCenter ...)

  2. Это зависимость модуля локальной библиотеки. Если в вашем приложении есть несколько модулей, например модуль аутентификации, просмотрите модуль. Он доступен в вашем проекте, и вы можете редактировать его исходный код.

  3. Это локальная двоичная зависимость. Когда вы хотите поделиться какой-то внутренней библиотекой и не публиковать sh в каком-либо облачном репозитории. Вам необходимо прикрепить файл .jar или .aar к каталогу lib и связать его, найдя его в каталоге "libs".

Более подробную информацию вы можете найти здесь

...