#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()
аргумента.