Sono abbastanza nuovo per Gradle e Groovy. Ecco il mio compito che genera le intestazioni JNI:Il modo migliore per definire l'attività javah nel gradle
apply plugin: 'java'
apply plugin: 'application'
mainClassName = "com.my.example.HelloG"
task GenerateJniHeaders(dependsOn: 'classes') << {
def classpath = "build/classes/main"
def nativeIncludes = "src/native/include"
"javah -d ${nativeIncludes} -classpath ${classpath} ${mainClassName}".execute()
}
classes.finalizedBy GenerateJniHeaders
build.dependsOn GenerateJniHeaders
Funziona bene, ma sento che è un po 'brutto. Come posso migliorarlo? Apprezzo qualsiasi suggerimento, specialmente quelli che mi aiutano a rimuovere le variabili codificate da me. Mi piacerebbe anche rendere questo compito più generico - ora genera solo l'intestazione JNI per la classe principale, ma vorrei eseguirlo per tutti i file java. Inoltre, quando questa attività ha esito negativo (ad esempio classpath è errato) non stampa alcun messaggio di errore e genera successo, il che è fuorviante.