/ Startseite / Blog / Technologisch

Gradle Fat Jar

task fatjar(type: Jar) {
    dependsOn compileJava
    manifest {
        attributes "Main-Class": "com.timtrense.myproject.Main"
    }
    exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
    from { configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) } }
    duplicatesStrategy( DuplicatesStrategy.EXCLUDE )
    with jar
}

task fatjartests(type: Jar) {
    archiveClassifier.set "tests"
    dependsOn compileJava
    manifest {
        attributes "Main-Class": "com.timtrense.myproject.BenchmarkMain"
    }
    exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
    from { 
        sourceSets.test.output
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
        configurations.testCompile?.collect { it.isDirectory() ? it : zipTree(it) }
    }
    duplicatesStrategy( DuplicatesStrategy.EXCLUDE )
    with jar
}

Posted in Technologisch on Apr 13, 2021