plugins {
    java
    id("io.spring.dependency-management") version "1.0.11.RELEASE"
}

dependencyManagement {
    imports {
        mavenBom("com.amazonaws:aws-java-sdk-bom:${Dependencies.awsSdkV1Version}")
    }
}

dependencies {
    implementation(project(":shared"))
    implementation("com.amazonaws:aws-java-sdk-s3")
    implementation("com.amazonaws:aws-java-sdk-dynamodb")
    implementation("javax.xml.bind:jaxb-api:${Dependencies.jaxbApiVersion}")
}

tasks.withType<com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar> {
    archiveFileName.set("app-uber.jar")
    destinationDirectory.set(project.buildDir)
}

val zipUberTask = tasks.register("zipUber", Zip::class.java) {
    from(tasks.shadowJar) {
        into("lib")
    }
    archiveBaseName.set("zipped-uber")
    destinationDirectory.set(project.buildDir)
}

val zipTask = tasks.register("zipLibs", Zip::class.java) {
    from(tasks.compileJava)
    from(tasks.processResources)
    from(configurations.runtimeClasspath.get()) {
        into("lib")
    }
    archiveBaseName.set("app-lib")
    destinationDirectory.set(project.buildDir)
}


tasks.build {
    finalizedBy(zipTask, tasks.shadowJar, zipUberTask)
}