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 "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)