在构建过程中添加代码生成步骤的最佳方法是什么?

时间:2015-12-21 15:03:00

标签: android gradle

我有一个python脚本,可以根据另一个文件修改java类的一部分(添加静态字段)。

在Gradle构建过程中添加它的最佳方法是什么(我的脚本需要pyton3(因此最好告诉用户他是否没有它)并且需要在java编译之前执行)?

1 个答案:

答案 0 :(得分:1)

我不确定从gradle运行python的最佳方式是什么,但是一个候选者是使用exec任务:

task runPython(type:Exec) {
   workingDir 'path_to_script'
   commandLine /*'cmd', '/c'*/ 'python', 'my_script.py'
}

您可能需要在Windows上添加cmd/c。您还可以在stdout上解析/断言成功条件。请参阅此处more about Exec

至于确保此任务始终在compileJava之前运行,您必须将此任务添加为compileJava任务的dependsOn

compileJava.dependsOn runPython

替代语法:

compileJava{
    dependsOn runPython
}

当compileJava依赖于runPython时,每次调用compileJava时都会先执行runPython。