我想在Gradle在Android中构建调试apk之前运行一些常规脚本。
task batchTask(type: JavaExec) {
description 'running tasks'
exec {
commandLine './Batch.groovy'
}
}
将此添加到build.gradle(app)
apply plugin: 'groovyx.grooid.groovy-android'
android{
...
dependsOn {
batchTask
}
}
dependencies {
...
compile 'org.codehaus.groovy:groovy:2.4.0:grooid'
}
将此添加到build.grade(android)
依赖项{
...
类路径'org.codehaus.groovy:gradle-groovy-android-plugin:0.3.6'
}
我不断收到错误错误:原因:错误= 13,权限被拒绝
堆栈跟踪
15:24:22.688 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: STARTING 15:24:22.689 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Waiting until process started: command './Batch.groovy'. 15:24:22.693 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: FAILED 15:24:22.693 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'command './Batch.groovy'' finished with exit value -1 (state: FAILED) 15:24:22.695 [DEBUG] [org.gradle.configuration.project.BuildScriptProcessor] Timing: Running the build script took 1.866 secs 15:24:22.798 [ERROR] [org.gradle.BuildExceptionReporter] 15:24:22.799 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception. 15:24:22.799 [ERROR] [org.gradle.BuildExceptionReporter] 15:24:22.800 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong: 15:24:22.800 [ERROR] [org.gradle.BuildExceptionReporter] A problem occurred evaluating project ':app'. 15:24:22.800 [ERROR] [org.gradle.BuildExceptionReporter] > A problem occurred starting process 'command './Batch.groovy'' 15:24:22.801 [ERROR] [org.gradle.BuildExceptionReporter] 15:24:22.801 [ERROR] [org.gradle.BuildExceptionReporter] * Try: 15:24:22.801 [ERROR] [org.gradle.BuildExceptionReporter] Run with --stacktrace option to get the stack trace. 15:24:22.802 [LIFECYCLE] [org.gradle.BuildResultLogger] 15:24:22.802 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED
更新:
在Groovy shell中运行任务可以解决问题。
task batchTask(type: JavaExec) {
description 'batchTask in progress'
new GroovyShell().run(file('Batch.groovy'))
}
最佳答案
在Groovy shell中运行任务可以解决问题。
task batchTask(type: JavaExec) {
description 'batchTask in progress'
new GroovyShell().run(file('Batch.groovy'))
}
关于java - 添加Groovy脚本以通过Gradle Android运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33611335/