创建胖罐子时发生Gradle错误
我正在尝试使用Gradle创建一个胖罐子。我遇到了与此类似的错误。不幸的是,我对Gradle和Groovy都不太了解,无法想出一个创造性的解决方案,所以我希望这里的人能够提供帮助。我在网上搜索了各种解决方法,但都没有结果:( 我的特别冲突是与Apache Storm依赖项的冲突:创建胖罐子时发生Gradle错误,gradle,jar,apache-storm,Gradle,Jar,Apache Storm,我正在尝试使用Gradle创建一个胖罐子。我遇到了与此类似的错误。不幸的是,我对Gradle和Groovy都不太了解,无法想出一个创造性的解决方案,所以我希望这里的人能够提供帮助。我在网上搜索了各种解决方法,但都没有结果:( 我的特别冲突是与Apache Storm依赖项的冲突: ... Caused by: org.gradle.api.GradleException: Could not copy zip entry /Users/DefaultUser/.gradle/caches/mod
...
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
我创建胖罐子的gradle代码如下:
jar {
manifest {
attributes 'Main-Class': mainClassName,
'Implementation-Version': version
}
from {
configurations.runtime.collect { it.isDirectory() ? it : zipTree(it) }
}
}
在花了一整天的时间寻找解决方法后,我在发布问题5分钟后找到了一个 这不是一个理想的解决方案,因为它排除了许可证,但是我通过以下方式使它工作。如果有人有更好的解决方案,我会非常感兴趣
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
}
}
我的build.gradle用于构建胖罐:
您的答案中可以简单地列出这一要点,而不仅仅是链接非现场资源。我在其他主题-:)中的完整答案在2018年仍然适用于我