【问题标题】:when creating .jar in my libgdx game an error comes out via gradle dist在我的 libgdx 游戏中创建 .jar 时,通过 gradle dist 出现错误
【发布时间】:2022-01-12 14:34:33
【问题描述】:

条目 LICENSE.txt 是重复的,但未设置重复处理策略。详情请参考https://docs.gradle.org/7.0.2/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy

task dist(type: Jar) {
    manifest {
        attributes 'Main-Class': project.mainClassName
    }
    dependsOn configurations.runtimeClasspath
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
    with jar
}

【问题讨论】:

    标签: java gradle jar libgdx


    【解决方案1】:

    错误表明至少有两个名为 LICENSE.txt 的文件被复制到同一个目标,这是不可能的,因为一个目录中不能有两个同名的文件。

    要修复它,您可以删除项目中的 LICENSE.txt 文件之一(可能在删除之前手动合并它们)。

    或者您可以像错误消息中的链接建议的那样添加重复策略:

    task dist(type: Jar) {
        manifest {
            attributes 'Main-Class': project.mainClassName
        }
        dependsOn configurations.runtimeClasspath
        from {
            configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
        }
    
        // exclude duplicate files
        duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    
        with jar
    }
    
    

    EXCLUDE 策略将忽略重复项。
    来自文档:

    通过忽略在同一路径创建的后续项目,不允许重复。

    如果在操作期间尝试创建重复的文件/条目,请忽略该项目。这将保留第一次复制/创建的文件/条目。

    您还可以使用来自this enum 的任何其他重复策略。

    【讨论】:

      猜你喜欢
      • 2021-12-24
      • 2019-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-25
      • 2019-06-24
      • 2015-10-14
      • 1970-01-01
      相关资源
      最近更新 更多