Как добавить local.зависимость файла jar для сборки.файл 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 Документация.
принятый ответ хорош, однако мне понадобились бы различные конфигурации библиотеки в моей сборке Gradle с несколькими проектами, чтобы использовать ту же стороннюю библиотеку Java.
добавить ' $rootProject.projectDir' в 'dir 'элемент пути внутри моего'allprojects' закрытие означало, что каждый подпроект ссылается на то же самое 'libs и не версия для суб-проекта:
//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: изменено " ${rootProject.projectDir} " to " $rootProject.projectDir " (работает в новейшей версии Gradle).
вы можете попробовать повторно использовать локальный репозиторий Maven для Gradle:
-
установите банку в локальный репозиторий Maven:
mvn install:install-file -Dfile=utility.jar -DgroupId=com.company -DartifactId=utility -Dversion=0.0.1 -Dpackaging=jar
проверьте, что у вас установлена банка в ваш
~/.m2/
локальный репозиторий Maven-
включите локальный репозиторий Maven в своем :
repositories { mavenCentral() mavenLocal() } dependencies { compile ("com.company:utility:0.0.1") }
- теперь у вас должен быть включен jar для компиляции в вашем проект
простой способ сделать это -
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" не содержит списка зависимостей файлов. Даже если вы так думаете, поскольку они были указаны в блоке "зависимости" в конце концов..
поэтому не полагайтесь на вывод этого, чтобы проверить, правильно ли работают ваши ссылочные локальные файлы lib.
решение, которое сработало для меня, - это использование fileTree в build.файл gradle. Оставь себе .jar, который нужно добавить как зависимость в папку libs. Приведите ниже код в блоке dependenices в build.Gradle в:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
Goto файл - > структура проекта - > модули - > приложение - > вкладка зависимости - > нажмите на +(кнопка) - > Выберите файл зависимости - > Выберите файл jar в папке lib
эти шаги автоматически добавят вашу зависимость к gralde
Очень Просто
иначе:
добавить библиотеку в виде дерева. Щелкните правой кнопкой мыши на этом. Выберите меню "Добавить как библиотеку". Появится диалоговое окно, позволяющее выбрать модуль. Хорошо, и дело сделано.
будьте осторожны, если вы используете непрерывную интеграцию, вы должны добавить свои библиотеки в том же пути на сервере сборки.
по этой причине я бы предпочел добавить jar в локальный репозиторий и, конечно же, сделать то же самое на сервере сборки.