Android Gradle — Как включить локальные файлы .jar в качестве зависимостей извне каталога проекта

#android #gradle #path #dependencies #build.gradle

#Android #gradle #путь #зависимости #build.gradle

Вопрос:

Я работаю над проектом, который предположительно выполняется в автономном режиме, и я пытаюсь включить локальные .jar файлы в качестве зависимостей внутри build.gradle (app)

Структуру репозитория можно увидеть здесь: введите описание изображения здесь

Основной проект находится внутри dev папки.

В submodules папке у меня есть все app и build зависимости вместе с android-sdk, gradle plugin и jdk .

Пытаюсь включить все мои файлы jar внутри build.gradle(app) вот так:

 implementation fileTree(include: ['*.jar'], dir: '../../submodules/app_dependencies')
  

Не работает, потому что я ссылаюсь на путь за пределами каталога проекта, и когда я пытаюсь собрать приложение, я получаю следующую ошибку

 FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:androidDependencies'.
> Could not resolve all artifacts for configuration ':app:developDebugCompileClasspath'.
   > Could not resolve org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.61.
     Required by:
         project :app
      > No cached version of org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.61 available for offline mode.
      > No cached version of org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.61 available for offline mode.
      > No cached version of org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.61 available for offline mode.
      > No cached version of org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.61 available for offline mode.
  

Отлаживая это, я вижу сообщение No meta-data file or artifact found for module 'org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.3.61' in repository 'maven' , когда оно просматривается по следующему пути:

 file:/C:/Users/my-user-name/Desktop/android_repo/client-android/dev/submodules/dependencies/build_dependencies/org/jetbrains/kotlin/kotlin-android-extensions-runtime/1.3.61/kotlin-android-extensions-runtime-1.3.61.jar
  

по какой-то причине, даже если я добавил ../../ в filetree(dir) , gradle все еще выполняет поиск внутри dev каталога, а мои зависимости находятся выше в submodules .

Есть ли способ указать динамический путь внутри build.gradle , который находится за пределами каталога проекта?

Ответ №1:

Он работает с файлами (в нотации kotlin):

 dependencies {
    implementation(files("../../submodules/app_dependencies/your-library.jar"))
}

  

Если вам нужно включить все файлы из какой-либо папки, вы можете просто создать список всех файлов jar в каком-либо каталоге и использовать его в качестве files() аргумента.