摇篮问题
我试图以运行多个任务:摇篮问题
task deleteTargetAndCopyfiles(type: Copy) {}
--> then:
task RunMavenCommands(type: Exec) {}
--> then:
task zipTheResults(type: Zip) {}
其中运行Exec任务,我有一个问题。 如果我使用:
task RunMavenCommands(type: Exec) {}
println '*******************************'
standardOutput = new ByteArrayOutputStream()
ext {
def startingDir = 'target/gradle_assembly'
def mavenOpt = '-Dmaven.test.skip=true -DskipTests=true'
def mavenRepo = '-Dmaven.repo.local=../../Tools/local/repository'
environment "MAVEN_OPTS", "${mavenOpt} ${mavenRepo}"
workingDir 'target/gradle_assembly'
def command = commandLine 'mvn', 'verify'
}
// doLast {
// println '*******************************'
// }
}
OR我运行:
task RunMavenCommands(type: Exec) {}
println '*******************************'
standardOutput = new ByteArrayOutputStream()
ext {
def startingDir = 'target/gradle_assembly'
def mavenOpt = '-Dmaven.test.skip=true -DskipTests=true'
def mavenRepo = '-Dmaven.repo.local=../../Tools/local/repository'
environment "MAVEN_OPTS", "${mavenOpt} ${mavenRepo}"
workingDir 'target/gradle_assembly'
def command = commandLine 'mvn', 'verify'
}
doLast {
println '*******************************'
}
}
我得到这个错误:
18:14:02.420 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: STARTING 18:14:02.421 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Waiting until process started: command 'mvn'.
18:14:02.476 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Changing state to: FAILED 18:14:02.477 [DEBUG] [org.gradle.process.internal.DefaultExecHandle] Process 'command 'mvn'' finished with exit value -1 (state: FAILED)
18:14:02.477 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':mavenExecute' 18:14:02.478 [LIFECYCLE] [class org.gradle.TaskExecutionLogger] :mavenExecute FAILED 18:14:02.478 [INFO] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] :mavenExecute (Thread[main,5,main]) completed. Took 0.067 secs. 18:14:02.478 [DEBUG] [org.gradle.execution.taskgraph.AbstractTaskPlanExecutor] Task worker [Thread[main,5,main]] finished, busy: 0.067 secs, idle: 0.001 secs 18:14:02.483 [ERROR] [org.gradle.BuildExceptionReporter] 18:14:02.483 [ERROR] [org.gradle.BuildExceptionReporter] FAILURE: Build failed with an exception. 18:14:02.483 [ERROR] [org.gradle.BuildExceptionReporter] 18:14:02.483 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong: 18:14:02.484 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':mavenExecute'. 18:14:02.484 [ERROR] [org.gradle.BuildExceptionReporter] > A problem occurred starting process 'command 'mvn''
我一直在试图破解任何可能的方式在过去的3天没有成功,也没有看到有任何人有适合我的工作解决方案。
异常使我怀疑它的执行误差与排序错误,而是要回答你的问题,规定:
如果命令总是需要的顺序运行,使用dependsOn:
task deleteTargetAndCopyfiles(type: Copy) {}
task RunMavenCommands(type: Exec) {
dependsOn deleteTargetAndCopyfiles
}
task zipTheResults(type: Zip) {
dependsOn RunMavenCommands
}
否则,在命令行中,你应该能够以指定的所有目标:
gradle deleteTargetAndCopyfiles RunMavenCommands zipTheResults
我也有相关性,而deleteTargetAndCopyfiles任务始终运行,但RunMave nCommands maven任务总是失败。 –
上面的输出是否使用'--stacktrace'运行?如果没有,你可以添加输出吗? – romeara
上面是运行--debug –