Я довольно новичок в градиенте и отличном стиле. Вот моя задача, которая генерирует заголовки JNI:Лучший способ определить javah task in 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
Он работает нормально, но я чувствую, что это немного некрасиво. Как я могу улучшить его? Я ценю любые предложения, особенно те, которые помогают мне удалить переменные, жестко закодированные мной. Я также хотел бы сделать эту задачу более универсальной - теперь она генерирует только заголовок JNI для основного класса, но я хочу запустить ее для всех java-файлов. Кроме того, когда эта задача выходит из строя (например, путь к классу неверен), она не печатает сообщение об ошибке и не создает успешную работу, что вводит в заблуждение.