Gradle问题按特定顺序运行Copy和Exec任务

时间:2016-07-14 22:28:07

标签: gradle build.gradle

我正在尝试按顺序运行多个任务:

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 '*******************************'
//        }  
}

或者我跑:

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]   将状态更改为:STARTING 18:14:02.421 [DEBUG]   [org.gradle.process.internal.DefaultExecHandle]等到进程   启动:命令'mvn'。

     

18:14:02.476 [DEBUG] [org.gradle.process.internal.DefaultExecHandle]   将州改为:FAILED 18:14:02.477 [DEBUG]   [org.gradle.process.internal.DefaultExecHandle]进程'命令   'mvn''以退出值-1结束(状态:FAILED)

     

18:14:02.477 [调查]   [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter]   完成执行任务':mavenExecute'18:14:02.478 [LIFECYCLE]   [class org.gradle.TaskExecutionLogger]:mavenExecute FAILED   18:14:02.478 [INFO]   [org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor]   :mavenExecute(Thread [main,5,main])完成。花了0.067秒。   18:14:02.478 [调查]   [org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor]任务工作者   [Thread [main,5,main]]完成,忙碌:0.067秒,空闲:0.001秒   18:14:02.483 [ERROR] [org.gradle.BuildExceptionReporter] 18:14:02.483   [错误] [org.gradle.BuildExceptionReporter]失败:构建失败   一个例外。 18:14:02.483 [错误] [org.gradle.BuildExceptionReporter]   18:14:02.483 [错误] [org.gradle.BuildExceptionReporter] *什么去的   错误:18:14:02.484 [错误] [org.gradle.BuildExceptionReporter]   任务':mavenExecute'的执行失败。 18:14:02.484 [错误]   [org.gradle.BuildExceptionReporter]>开始出现问题   进程'命令'mvn''

在过去的3天里,我一直试图破解任何可行的方法,但没有成功,也没有看到任何人有一个适合我的工作解决方案。

1 个答案:

答案 0 :(得分:0)

异常让我想知道它的执行错误是否与排序错误有关,而是回答你提出的问题:

如果命令始终需要按该顺序运行,请使用dependsOn:

task deleteTargetAndCopyfiles(type: Copy) {}

task RunMavenCommands(type: Exec) {
    dependsOn deleteTargetAndCopyfiles
}

task zipTheResults(type: Zip) {
    dependsOn RunMavenCommands
}

否则,从命令行,您应该能够按顺序指定所有目标:

gradle deleteTargetAndCopyfiles RunMavenCommands zipTheResults