buildscript {
    ext {
        springBootVersion = '1.4.1.RELEASE'
    }

    repositories {
        jcenter()
    }

    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

plugins {
    id "com.github.hierynomus.license" version "0.13.1"
}
apply from: '../shared.gradle'

dependencies {
    compile(
            [group: 'io.mifos.deposit-account-management', name: 'api', version: project.version],
            [group: 'io.mifos.deposit-account-management', name: 'service', version: project.version],
            [group: 'io.mifos.anubis', name: 'test', version: versions.frameworkanubis],
            [group: 'io.mifos.core', name: 'api', version: versions.frameworkapi],
            [group: 'io.mifos.core', name: 'test', version: versions.frameworktest],
            [group: 'io.mifos.core', name: 'lang', version: versions.frameworklang],
            [group: 'org.springframework.boot', name: 'spring-boot-starter-test']
    )
}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}
