【问题标题】:JavaFX Gradle build error, java.util.zip.ZipException: duplicate entry: META-INF/LICENSEJavaFX Gradle 构建错误,java.util.zip.ZipException:重复条目:META-INF/LICENSE
【发布时间】:2014-12-31 00:55:46
【问题描述】:

我正在使用 Gradle 构建 JavaFX 应用程序。我一直遇到的问题是 META-INF/LICENSE 的“重复条目”错误。

我的 jar 包含对 Amazon AWS 开发工具包的依赖项,因此我假设错误是由此生成的。至此,我已经找到了如下所述的解决方案:

Duplicate Zip Entry after Gradle Plugin v0.13.1

这描述了我的确切问题,但仅在 Android Gradle 的上下文中。

具体来说,解决方案是:

android.packagingOptions {
    pickFirst 'META-INF/LICENSE.txt'
}

当然,Gradle 中明显没有这样的选项。我的问题:有没有一种直接的方法可以在构建代码中解决这个问题,而不必手动查找和删除重复的 META-INF/LICENSE 事件?

为了完整起见,这里是 gradle assemble 生成的错误:

Caused by: java.util.zip.ZipException: duplicate entry: META-INF/LICENSE
    at com.sun.javafx.tools.packager.PackagerLib.copyFromOtherJar(PackagerLib.java:1409)
    at com.sun.javafx.tools.packager.PackagerLib.jar(PackagerLib.java:1366)
    at com.sun.javafx.tools.packager.PackagerLib.packageAsJar(PackagerLib.java:288)
    ... 54 more

还有我的 gradle.build 脚本:

apply from: 'javafx.plugin'

repositories {
    mavenCentral()
}

dependencies {
    compile ('com.amazonaws:aws-java-sdk:1.9.13') {
        exclude group: 'commons-io', module: 'commons-io'
    }
    testCompile group: 'junit', name: 'junit', version: '4.+'
}

jar  {
   from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
   manifest {
      attributes 'Main-Class': 'com.buddyware.treefrog.Main'
   }
}

【问题讨论】:

  • 尝试将duplicatesStrategy 'exclude' 添加到您的jar 任务配置中。
  • 宾果游戏!添加 duplicatesStrategy(DuplicatesStrategy.EXCLUDE) 为我修复了它。谢谢!

标签: java amazon-web-services gradle javafx meta-inf


【解决方案1】:

根据 Mark Vieira 的建议和对实际示例的一点挖掘,我将 build.gradle 文件的 jar 任务修改为如下所示:

jar  {
   duplicatesStrategy(DuplicatesStrategy.EXCLUDE)
   from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
   manifest {
      attributes 'Main-Class': 'com.buddyware.treefrog.Main'
   }
}

运行“gradle assemble”成功,没有任何抱怨!

【讨论】:

    猜你喜欢
    • 2021-08-18
    • 1970-01-01
    • 2022-12-03
    • 2019-12-20
    • 2015-03-25
    • 1970-01-01
    • 2016-07-09
    • 1970-01-01
    • 2017-05-25
    相关资源
    最近更新 更多