group 'io.mifos'

task publishApiToMavenLocal {
    dependsOn gradle.includedBuild('api').task(':publishToMavenLocal')
}

task publishServiceToMavenLocal {
    mustRunAfter publishApiToMavenLocal
    dependsOn gradle.includedBuild('service').task(':publishToMavenLocal')
}

task publishComponentTestToMavenLocal {
    mustRunAfter publishApiToMavenLocal
    mustRunAfter publishServiceToMavenLocal
    dependsOn gradle.includedBuild('component-test').task(':publishToMavenLocal')
}

task publishToMavenLocal {
    group 'all'
    dependsOn publishApiToMavenLocal
    dependsOn publishServiceToMavenLocal
    dependsOn publishComponentTestToMavenLocal
}

task licenseFormat {
    group 'all'
    dependsOn gradle.includedBuild('api').task(':licenseFormat')
    dependsOn gradle.includedBuild('service').task(':licenseFormat')
    dependsOn gradle.includedBuild('component-test').task(':licenseFormat')
}

task prepareForTest {
    group 'all'
    dependsOn publishToMavenLocal
    dependsOn gradle.includedBuild('component-test').task(':build')
}