Как Добавить локальный.файл зависимостей банку, чтобы построить.файл gradle?
поэтому я попытался добавить свой локальный .зависимость файла jar от моей сборки.файл gradle:
apply plugin: 'java'
sourceSets {
main {
java {
srcDir 'src/model'
}
}
}
dependencies {
runtime files('libs/mnist-tools.jar', 'libs/gson-2.2.4.jar')
runtime fileTree(dir: 'libs', include: '*.jar')
}
и вы можете видеть, что я добавил .jar файлы в папку referencedLibraries здесь:https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1/referencedLibraries
но проблема в том, что когда я запускаю команду: gradle build в командной строке, я получаю следующую ошибку:
error: package com.google.gson does not exist
import com.google.gson.Gson;
вот весь мой РЕПО: https://github.com/WalnutiQ/wAlnut/tree/version-2.3.1
14 ответов:
Если вам действительно это нужно .jar из локального каталога,
добавить рядом с модулем gradle (не приложение gradle файл):
repositories { flatDir { dirs 'libs' } } dependencies { compile name: 'gson-2.2.4' }
однако, будучи стандартом .jar в реальном хранилище maven, почему бы вам не попробовать это?
repositories { mavenCentral() } dependencies { compile 'com.google.code.gson:gson:2.2.4' }
по данным документация, используйте относительный путь для локальной зависимости jar следующим образом:
dependencies { compile files('libs/something_local.jar') }
вы также можете сделать это, которое будет включать все банки в локальном репозитории. Таким образом, вам не придется указывать его каждый раз.
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) }
для меня работает следующее:
compile fileTree(dir: 'libs', include: '*.jar')
относятся к Gradle Documentation.
принятый ответ хорош, однако мне понадобились бы различные конфигурации библиотек в моей сборке Gradle с несколькими проектами, чтобы использовать одну и ту же стороннюю библиотеку Java.
добавить ' $rootProject.каталог_проекта' в 'реж 'элемент пути внутри моего'allprojects' закрытие означало, что каждый подпроект ссылается на одно и то же'библиотеки и не версия для суб-проекта:
//gradle.build snippet allprojects { ... repositories { //All sub-projects will now refer to the same 'libs' directory flatDir { dirs "$rootProject.projectDir/libs" } mavenCentral() } ... }
EDIT by Quizzie: changed " ${rootProject.projectDir} " to " $rootProject.projectDir " (работает в новейшей версии Gradle).
вы можете попробовать повторно использовать локальный репозиторий Maven для Gradle:
установите jar в локальный репозиторий Maven:
mvn install:install-file -Dfile=utility.jar -DgroupId=com.company -DartifactId=utility -Dversion=0.0.1 -Dpackaging=jar
проверьте, что у вас установлена банка в ваш
~/.m2/
локальный репозиторий Mavenвключите локальный репозиторий Maven в вашем
build.gradle
file:repositories { mavenCentral() mavenLocal() } dependencies { compile ("com.company:utility:0.0.1") }
- теперь вы должны иметь банку включена для компиляции в вашем проект
простой способ сделать это -
compile fileTree(include: ['*.jar'], dir: 'libs')
он будет составлять все .jar-файлы в вашем каталоге libs в приложении.
Я не мог получить предложение выше в https://stackoverflow.com/a/20956456/1019307 на работу. Это сработало для меня, хотя. Для файла
secondstring-20030401.jar
что я хранил вlibs/
каталог в корне проекта:repositories { mavenCentral() // Not everything is available in a Maven/Gradle repository. Use a local 'libs/' directory for these. flatDir { dirs 'libs' } } ... compile name: 'secondstring-20030401'
лучший способ сделать это-добавить это в свою сборку.gradle файл и нажмите опцию синхронизации
dependency{ compile files('path.jar') }
на этот вопрос уже был дан подробный ответ. Я все еще хочу добавить кое-что, что кажется мне очень удивительным:
задача "gradle dependencies" не содержит никаких зависимостей файлов. Даже если вы так думаете, поскольку они были указаны в блоке "зависимости" в конце концов..
поэтому не полагайтесь на вывод этого, чтобы проверить, правильно ли работают ваши ссылки на локальные файлы lib.
решение, которое сработало для меня, - это использование fileTree в сборке.файл gradle. Оставь себе .jar, который нужно добавить в качестве зависимости в папку libs. Ниже приведен код в блоке dependenices в сборке.Gradle в:
dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) }
Goto File - > структура проекта - > модули - > приложение - > вкладка зависимости - > нажмите на +(кнопка) - > Выберите файл зависимости - > Выберите файл jar в папке lib
эти шаги автоматически добавят вашу зависимость в gralde
Очень Просто