subprojects {
    apply plugin: 'java'

    version = "1.0.0-RC2"
    group = 'com.github.badoualy'

    sourceCompatibility = '1.7'
    targetCompatibility = '1.7'

    repositories {
        jcenter()
        mavenCentral()
    }

    dependencies {
        testCompile 'org.testng:testng:6.5.1'
    }

    buildscript {
        ext.kotlin_version = '1.1.2-5'
        repositories {
            mavenCentral()
        }
        dependencies {
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    plugins.withType(MavenPlugin) {
        install {
            repositories.mavenInstaller {
                pom.project {
                    licenses {
                        license {
                            name 'The MIT License (MIT)'
                            url 'https://opensource.org/licenses/MIT'
                            distribution 'repo'
                        }
                    }
                }
            }
        }
    }

    task sourcesJar(type: Jar, dependsOn: classes) {
        classifier = 'sources'
        from sourceSets.main.allSource
    }

    task javadocJar(type: Jar, dependsOn: javadoc) {
        classifier = 'javadoc'
        from javadoc.destinationDir
    }

    artifacts {
        archives sourcesJar
        archives javadocJar
    }
}

task wrapper(type: Wrapper) {
    gradleVersion = '4.0.1'
}

task fatJar {
    group = "build"
    description = "Generate a jar for each module including all dependencies"

    subprojects.each {
        it.afterEvaluate {
            def fatJarTask = it.tasks.findByName('fatJar')
            if (fatJarTask) {
                dependsOn(fatJarTask)
            }
        }
    }
}