plugins {
    id 'java-library'
    id 'maven-publish'
    id 'org.springframework.boot' 
    id "com.palantir.git-version" 
}

apply plugin: 'io.spring.dependency-management'

apply from: rootProject.file('gradle/swnx-publish.gradle')

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

println("Build Version: $buildVersion")

bootJar {
    enabled = false
}

repositories {
    maven {
        url "http://ykt-nx.supwisdom.com/repository/ecard-repo/"
        credentials {
            username "${nxUser}"
            password "${nxPassword}"
        }
    }
}

dependencies {
    implementation project(":payapi-common")
    implementation "com.supwisdom:multi-tenant-core:${multiTenantLibVersion}"
    compile "com.supwisdom:multi-tenant-jwt-client:${multiTenantLibVersion}"
    implementation "com.fasterxml.jackson.core:jackson-databind:${fasterXMLVersion}"

    implementation "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
    implementation "org.springframework.cloud:spring-cloud-starter-openfeign"

}

jar {
    enabled = true
    archiveFileName = "${project.name}-${buildVersion}.${archiveExtension.getOrElse('.jar')}"
    manifest {
        attributes('Payapi-SDK-Version': buildVersion)
    }
}

publish.dependsOn(jar)