摇篮问题

问题描述:

我试图以运行多个任务:摇篮问题

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 
+0

我也有相关性,而deleteTargetAndCopyfiles任务始终运行,但RunMave nCommands maven任务总是失败。 –

+0

上面的输出是否使用'--stacktrace'运行?如果没有,你可以添加输出吗? – romeara

+0

上面是运行--debug –