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

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)
