group 'org.ctfcracktools'
version '4.0.7'

buildscript {
    ext.kotlin_version = '1.3.72'
//    ext.kotlin_version = '1.7.20'

    repositories {
        maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
        mavenLocal()
        mavenCentral()
    }
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'java'
apply plugin: 'kotlin'

jar {
    from{
        configurations.runtime.collect{zipTree(it)}
    }
    exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA',
            'META-INF/LICENSE.txt','META-INF/NOTICE.txt','META-INF/*/*/*.class',
            'META-INF/LICENSE','module-info.class'
    manifest{attributes 'Main-Class': 'org.ctfcracktools.Main'}

}

sourceCompatibility = 1.8
targetCompatibility = 1.8
sourceSets{
    main.kotlin.srcDirs += 'src'
    main.java.srcDirs += 'src'
    test.kotlin.srcDirs += 'test'
    test.java.srcDirs += 'test'
}

repositories {
    maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
    mavenLocal()
    mavenCentral()
}

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

task FatJar(type: Jar) {
    manifest {
        attributes 'Main-Class': 'org.ctfcracktools.Main'
    }
    baseName = 'CTFCrackTools'
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
}
dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

    compile group: 'org.python', name: 'jython', version: '2.7.2'
    compile group: 'com.google.code.gson', name: 'gson', version: '2.8.9'
    compile group: 'commons-codec', name: 'commons-codec', version: '1.15'
    compile group: 'org.apache.commons', name: 'commons-text', version: '1.9'
    compile group: 'com.formdev', name: 'flatlaf', version: '1.6.4'
    testCompile group: 'junit', name: 'junit', version: '4.12'
    implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25'
    implementation group: 'org.slf4j', name: 'slf4j-simple', version: '1.7.25'
}

compileKotlin {
    kotlinOptions.jvmTarget = "1.8"
}
compileTestKotlin {
    kotlinOptions.jvmTarget = "1.8"
}