Search code examples
extjsgradle

Gradle -- execute multiple commands from task


I have 2 separate apps (in one project) that require 2 separate builds (sencha cmd). I have been asked to create a gradle script that will do the builds for both apps.

I created a task that builds one app, but am having troubles using the same task to build the 2nd app.

This is what I have so far:

task senchaCmdBuild (type: Exec) {
  workingDir 'src/main/app/MYAPP'
  commandLine 'cmd', 'c', 'sencha app build'
}

and this works fine.

When I add the following 2 lines to above task:

 workingDir 'src/main/app/MYOTHERAPP'
 commandLine 'cmd', 'c', 'sencha app build'

the first command is ignored and only the second command executes.

So is there anyway I can execute both commands with one task?


Solution

  • You can use the second way to declare task types on gradle.

    task senchaCmdBuild {
      doLast {
        exec {
          workingDir 'src/main/app/MYAPP'
          commandLine 'cmd', 'c', 'sencha app build'
        }
        exec {
          workingDir 'src/main/app/MYOTHERAPP'
          commandLine 'cmd', 'c', 'sencha app build'
        }
      }
    }
    

    You need to put the exec method in doLast in order to be executed only on execution flow