У меня есть build.gradle с некоторыми зависимостями. Одной из зависимостей является ведение журнала общих Apache
dependencies {
...
compile 'commons-logging:commons-logging:1.2'
}
Я использую mavenCrentral для разрешения большинства зависимостей. Однако некоторые библиотеки сохраняются в виде файлов jar в каталоге моей файловой системы. Я говорю gradle, где найти эти библиотеки:
repositories {
mavenCentral()
flatDir {
dirs "${rootProject.projectDir}/libs"
}
}
Когда я помещаю файл commons-logging-1.2.jar в папку libs, я вижу этот путь для jar в своем "Project and External"Зависимости "в Eclipse, тогда все работает нормально.
Однако, когда я удаляю этот jar из папки libs, такой, что gradle загружает его из mavenCentral и сохраняет его в" ... /. Gradle / caches /. .. ", тогда я получаю
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
при запуске проекта.
jar, загруженный gradle из maven central, и тот, который у меня есть в моей локальной папке lib, идентичны (онииметь одинаковую контрольную сумму MD5). В Eclipse я вижу файл jar в разделе «Project and External Dependencies» в обоих случаях. Таким образом, банка, кажется, на пути к классам. Единственная разница - путь к файлу jar. Это либо "... / my-project / libs / ...", либо "... /. Gradle / caches /...".
Почему эти зависимости не эквивалентны? Это проблема с Eclipse, Gradle или моими настройками?