我以一种非常默认的方式设置了一个exec任务,例如:
task myTask(type:Exec) {
workingDir '.'
commandLine './myscript.sh'
doLast {
if(execResult == 0) {
//one thing
} else {
//another thing
}
}
}
但不幸的是,当脚本抛出错误时,它从不执行doLast块。相反,它跳过了这一点,并在整个构建中失败
任务执行失败:项目:myTask。处理“命令”。/myscript.sh“”以非零退出值1结束
这对我来说毫无用处。myscript.sh 以非零退出值结束的整个想法是,这样我就可以执行一些代码来响应它。我需要做些什么才能不使构建失败,而是捕获结果并执行响应操作?感谢您的帮助!
如果<code>ignoreExitValue</code>答案不起作用,另一种解决方案是用<code>try{…}catch(异常e){…}</code>环绕<code〉命令行</code>。
TL;DR - 使用 ignoreExitValue = true
大概读到文档第五十遍的时候,终于看到有一个属性,ignoreExitValue,默认为false。但是如果将它设置为true,那么您可以在doLast块中执行自己的任务。
task myTask(type:Exec) {
workingDir '.'
commandLine './myscript.sh'
ignoreExitValue true
doLast {
if(execResult.getExitValue() == 0) {
//one thing
} else {
//another thing
}
}
}
我在一个Java桌面应用程序中使用gradle。 IDE是NetBeans&我想从我的Java类生成一些自动化的JSON。 我实现了3个类(仅POJOs)&试图通过Gradle导入'com.github.reinert',名称:'jjschema',版本:'1.11'。 jjschema将打印java对象的JSON等价物。 然而,gradle并没有解析这些类&也没有下载依赖项。 这是我的gradl
错误:任务': app: transformClassesSusDexForDebug'执行失败。 com.android.build.api.transform。TransformException:java.lang.RuntimeException:com.android.ide.common.process。ProcessException:java.util.concurrent。Exe
com.android.ide.common.Process.processException:org.gradle.Process.internal.execException:Process'command'c:\program files\java\jdk1.8.0_40\bin\java.exe“以非零退出值2完成 我该怎么解决?请帮帮我!
错误: 项目结构: build.gradle(actionbarsherlock) 建筑格拉德尔(vertretungsplan) 设置。格拉德尔 如何修复此错误?
我有一个多项目gradle构建,Spring Boot按照默认gradle约定进行结构化。 我目前的项目是(A)将gradle从5. x升级到7.3. x,(B)使用带有Spring Boot的嵌入式Tomcat。 这是一个已经存在很多年的项目,是Spring Boot,但是传统上一直作为一个战争文件部署在Tomcat中。 我已经按照gradle迁移指南将gradle升级到7.3.3,并正确构建了
我刚刚更新了我的cordova android到7.1.0,以支持Android27 sdk,以解决插件不能与SDK26一起工作的问题。 我尝试更改GradleBuilder.js文件中的gradle分发url,但没有成功。 编辑2:我想解决这个问题的firebase插件似乎是问题的一部分。移除:cordova-plugin-firebase允许应用程序的构建没有问题。似乎在添加插件后,我不能简单