Поэтому я попытался добавить свою локальную зависимость файла .jar в мой файл build.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
java
gradle
dependency-management
build.gradle
gradle-eclipse
Ван-Чжао-Лю QM
источник
источник
Ответы:
Если вам действительно нужно взять этот .jar из локального каталога,
Добавьте рядом с модулем Gradle (не файл приложения Gradle):
Тем не менее, будучи стандартным .jar в реальном хранилище Maven, почему бы вам не попробовать это?
источник
gradle.build
файл. Что это за файл "файл приложения" и "модуль"?implementation(":gson:2.2.4")
кажется, способ сделать это.Согласно документации , используйте относительный путь для локальной зависимости jar следующим образом:
источник
Вы также можете сделать это, что будет включать все файлы JAR в локальном хранилище. Таким образом, вам не нужно будет указывать это каждый раз.
источник
Следующие работы для меня:
Обратитесь к документации Gradle .
источник
Вы можете попробовать использовать локальный репозиторий Maven для Gradle:
Установите банку в ваш локальный репозиторий Maven:
mvn install:install-file -Dfile=utility.jar -DgroupId=com.company -DartifactId=utility -Dversion=0.0.1 -Dpackaging=jar
Убедитесь, что у вас установлен jar в
~/.m2/
локальный репозиторий MavenВключите ваш локальный репозиторий Maven в вашем
build.gradle
файле:источник
Принятый ответ хороший, однако мне понадобились бы различные конфигурации библиотеки в моей многопроектной сборке Gradle, чтобы использовать ту же стороннюю библиотеку Java.
Добавление « $ rootProject.projectDir » к элементу пути « dir » в моем закрытии « allprojects » означало, что каждый подпроект ссылался на один и тот же каталог « libs », а не на версию, локальную для этого подпроекта:
РЕДАКТИРОВАНИЕ от Quizzie: изменено «$ {rootProject.projectDir}» на «$ rootProject.projectDir» (работает в последней версии Gradle).
источник
Решение для тех, кто использует Kotlin DSL
Добавленные решения отлично подходят для OP, но не могут использоваться с Kotlin DSL без их предварительного перевода. Вот пример того, как я добавил локальный .JAR в свою сборку, используя Kotlin DSL:
Помните, что если вы используете Windows, ваши обратные слеши должны быть экранированы:
Также помните, что кавычки должны быть двойными, а не одинарными.
Изменить на 2020 год:
Обновления Gradle устарели
compile
иtestCompile
в пользуimplementation
иtestImplementation
. Таким образом, приведенный выше блок зависимостей будет выглядеть для текущих версий Gradle:источник
compile(project(":MyProject"))
где «MyProject» определен в вашемsettings.gradle
файле с чем-то вродеinclude("MyProject")
.Простой способ сделать это
он скомпилирует все файлы .jar в вашем каталоге libs в App.
источник
Я не смог получить предложение выше на https://stackoverflow.com/a/20956456/1019307 для работы. Это сработало для меня, хотя. Для файла,
secondstring-20030401.jar
который я сохранил вlibs/
каталоге в корне проекта:источник
На вопрос уже был дан подробный ответ. Я все еще хочу добавить кое-что, что кажется мне очень удивительным:
Задача «gradle зависимости» не перечисляет никаких файловых зависимостей. Даже если вы так и думаете, ведь они были указаны в блоке «зависимости».
Так что не полагайтесь на вывод этого, чтобы проверить, работают ли ваши локальные файлы lib, на которые ссылаются, правильно.
источник
Решение, которое сработало для меня, это использование fileTree в файле build.gradle. Сохраните .jar, который нужно добавить в качестве зависимости, в папке libs. Ниже приведен код в блоке зависимостей в build.gradle:
источник
Лучший способ сделать это - добавить это в файл build.gradle и нажать опцию синхронизации.
источник
Вы можете добавить jar, выполнив:
Для gradle просто введите следующий код
build.gradle
:а для мавена просто следуйте шагам:
Для Intellij: Файл-> Структура проекта-> Модули-> вкладка Зависимости-> нажмите + знак-> jar и зависимость-> выберите банки, которые вы хотите импортировать-> ok-> применить (если они видны) -> ok
Помните, что если вы получили какое-либо
java.lang.NoClassDefFoundError: Could not initialize class
исключение во время выполнения, это означает, что зависимости в jar не установлены, для этого вы должны добавить все зависимости в родительский проект.источник
Перейдите в Файл -> Структура проекта -> Модули -> Приложение -> Вкладка Зависимости -> Нажмите + (кнопка) -> Выберите Зависимость файла -> Выберите файл JAR в папке lib
Эти шаги автоматически добавят вашу зависимость к gralde
Очень просто
источник
build.gradle
.Будьте осторожны, если вы используете непрерывную интеграцию, вы должны добавить свои библиотеки по тому же пути на вашем сервере сборки.
По этой причине я бы предпочел добавить jar в локальный репозиторий и, конечно же, сделать то же самое на сервере сборки.
источник
Другой путь:
Добавить библиотеку в виде дерева. Щелкните правой кнопкой мыши на этом. Выберите меню «Добавить в библиотеку». Появится диалоговое окно, позволяющее выбрать модуль. ОК и готово.
источник