我正在使用此问题Execute shell script in Gradle作为参考,但是,我无法弄清楚如何让它发挥作用。
这是我的gradle文件:
...
task myPrebuildTask(type: Exec) {
println "Hello world from gradle"
commandLine 'sh', './myScript.sh'
}
build.dependsOn myPrebuildTask
我在 myScript.sh
中有这个#!/ bin / sh的
echo“脚本文件中的Hello world”
但是,每当我运行脚本gradle assembleDebug
时,我只能看到“来自gradle的Hello world”而不是“脚本文件中的Hello world”。
Yuchens-iMac:MyApplication yuchen$ gradle assembleDebug
Hello world from gradle
Incremental java compilation is an incubating feature.
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
...
为什么呢?
答案 0 :(得分:2)
我把它放在一个新的CMS_LANGUAGES = {
'default': {
'fallbacks': ['en',],
'redirect_on_fallback':True,
'public': True,
'hide_untranslated': False,
}
}
build.gradle
运行defaultTasks 'myPrebuildTask'
task myPrebuildTask(type: Exec){
println "Hello world from gradle"
commandLine 'sh', './myScript.sh'
}
会导致:
gradle -q
显然,任务打印命令输出就好了。
在你的情况下,有些事情可能会变得很糟糕。当您拨打> gradle -q
Hello world from gradle
Hello world from the script file
时,您设置的任务依赖关系可能不足以触发您的自定义任务,或者由于两条打印行实际上以不同的gradle阶段打印,因此第二行可能位于您的日志中的其他位置 - 您还没有t发布了整个输出。
答案 1 :(得分:0)
应该改用:
task myPrebuildTask(type: Exec) {
println "Hello world from gradle"
commandLine 'sh', './myScript.sh'
}
assembleDebug.dependsOn("myPrebuildTask")