Я пытаюсь интегрировать запуск утилиты компилятора данных ORMLite в мой скрипт Android Gradle. Из различных источников я установил, как поместить его в поток сборки с необходимыми зависимостями, чтобы убедиться, что он запускается после компиляции java, а вторая задача обновит apk с помощью сгенерированного файла определений базы данных с помощью aapt.
Моя основная проблема заключается в том, что я не могу запустить расширенный класс OrmLiteConfigUtil, потому что задача JavaExec не может найти класс OrmLiteConfigUtil.
Error:Gradle: java.lang.ClassNotFoundException: com.j256.ormlite.android.apptools.OrmLiteConfigUtil
Постановка задачи следующая
applicationVariants.all { com.android.build.gradle.api.ApplicationVariant variant ->
def databaseTaskName = "${variant.name.capitalize()}DatabaseCompile"
def buildDir = getBuildDir()
def javaCompileTaskName = "compile" + variant.name.capitalize() + "Java"
def javaTask = project.tasks.findByName("${javaCompileTaskName}")
task "${databaseTaskName}" (type: JavaExec) {
main = 'com.barclaycard.bespoke.android.data.local.DatabaseConfigUtil'
dependencies {
classpath files("${buildDir}/intermediates/classes/${variant.dirName}")
}
}
if (javaTask != null) {
println "Adding post-compile hook to ${variant.name}"
javaTask.finalizedBy "${variant.name.capitalize()}DatabaseCompile"
}
}
и находится внутри раздела android в build.gradle.
Я попытался добавить дополнительные операторы в раздел зависимостей задачи, но безрезультатно.
compile 'com.j256.ormlite:ormlite-android:4.48'
(ClassNotFoundException возникает во время выполнения задачи)
classpath 'com.j256.ormlite:ormlite-android:4.48'
и
classpath files('com.j256.ormlite:ormlite-android:4.48')
(Невозможно преобразовать URL-адрес «com.j256.ormlite:ormlite-android:4.48» в файл.)
Я не понимаю, как заставить задачу JavaExec использовать удаленное репо для поиска нужного класса.
compile 'com.j256.ormlite:ormlite-android:4.48'
используется в основных зависимостях проекта и отлично работает.