Gradle Error While Creating Fat Can

I am trying to create a thick jar using Gradle. I encountered an error similar to this one raised against Gradle . Unfortunately, I don't understand Gradle and Groovy enough to come up with a creative workaround, so I hope someone here can help. I searched online for various workarounds to no avail :(

My conflict with Apache Storm dependencies:

...
Caused by: org.gradle.api.GradleException: Could not copy zip entry /Users/DefaultUser/.gradle/caches/modules-2/files-2.1/org.apache.storm/storm-core/0.10.0-beta1/c3ba45e5ba616335c9f4be12317a8ebf2d2f17ba/storm-core-0.10.0-beta1.jar!META-INF/license/LICENSE.base64.txt to '/Users/DefaultUser/Projects/streams/build/tmp/expandedArchives/storm-core-0.10.0-beta1.jar_6i3o5dzb4lwfvasqr1cg4giqy/META-INF/license/LICENSE.base64.txt'.
    at org.gradle.api.internal.file.AbstractFileTreeElement.copyTo(AbstractFileTreeElement.java:79)
    at org.gradle.api.internal.file.archive.ZipFileTree$DetailsImpl.getFile(ZipFileTree.java:125)
    at org.gradle.api.internal.file.AbstractFileTree$1.visitFile(AbstractFileTree.java:39)
    at org.gradle.api.internal.file.AbstractFileTree$FilteredFileTree$1.visitFile(AbstractFileTree.java:145)
    at org.gradle.api.internal.file.archive.ZipFileTree.visit(ZipFileTree.java:90)
    ... 50 more
Caused by: org.gradle.api.UncheckedIOException: Cannot create directory '/Users/DefaultUser/Projects/streams/build/tmp/expandedArchives/storm-core-0.10.0-beta1.jar_6i3o5dzb4lwfvasqr1cg4giqy/META-INF/license' as it already exists, but is not a directory
    at org.gradle.util.GFileUtils.mkdirs(GFileUtils.java:261)
    at org.gradle.api.internal.file.AbstractFileTreeElement.copyTo(AbstractFileTreeElement.java:73)
    ... 54 more

My Gradle code for creating a thick can is as follows:

jar {

    manifest {
        attributes 'Main-Class': mainClassName,
                'Implementation-Version': version
    }

    from {
        configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
    }
}
+4
source share
2 answers

After searching for a whole day looking for a workaround, I found it 5 minutes after I posted my question ...

, , . - , .

jar {

    from(configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }) {
        exclude "META-INF/*.SF"
        exclude "META-INF/LICENSE"
    }

    manifest {
        attributes 'Main-Class': mainClassName,
                'Implementation-Version': version
    }

}
+2

Source: https://habr.com/ru/post/1599419/


All Articles