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

group = rootProject.group

def sdkVersion = gitVersion()
sourceCompatibility = 1.8
targetCompatibility = 1.8

publishing {
    publications {
        mavenJava(MavenPublication) {
            groupId = project.group
            artifactId = 'bus-qrcode'
            version = sdkVersion
            from components.java
        }
    }
    repositories {
        maven {
            // change URLs to point to your repos, e.g. http://my.org/repo
            def releasesRepoUrl = "http://ykt-nx.supwisdom.com/repository/ecard-repo/"
            def snapshotsRepoUrl = "http://ykt-nx.supwisdom.com/repository/ecard-repo/snapshot/"
            url = version.endsWith('dirty') ? snapshotsRepoUrl : releasesRepoUrl
            credentials(PasswordCredentials) {
                username = nxUser
                password = nxPassword
            }
        }
    }
}

dependencies {
    implementation "org.apache.commons:commons-lang3:3.7"
    implementation 'com.eatthepath:java-otp:0.1.0'
    implementation 'org.slf4j:slf4j-api:1.7.25'
    implementation 'commons-codec:commons-codec:1.9'
    runtime 'org.slf4j:slf4j-parent:1.7.25'
    runtime 'org.slf4j:slf4j-simple:1.7.25'
    testImplementation 'junit:junit:4.12'
}

jar {
    enabled = true
    baseName = "bus-qrcode"
    manifest {
        attributes('Bus-QRcode-Version': sdkVersion)
    }
}

publish.dependsOn(jar)

tasks.withType(JavaCompile) {
    options.encoding = "UTF-8"
}
