【问题标题】:How to integrate duplicate handling strategy in application plugin如何在应用程序插件中集成重复处理策略
【发布时间】:2022-01-17 14:29:17
【问题描述】:

我正在我的一个项目中使用应用程序插件。升级到 Gradle 7.x 后,我遇到了失败:

        Execution failed for task ':xyz:distTar'.
        > Entry xyz-1.0/lib/jaxb-core-3.0.1.jar is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.3.3/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.

我发现了一个与 Gradle 7 task ':distTar' is a duplicate but no duplicate... 相关的堆栈溢出帖子。但是建议合并...

tasks.withType<Tar> {
   duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}

tasks.withType<Zip>{
   duplicatesStrategy = DuplicatesStrategy.EXCLUDE
}

没有成功。以失败告终:

A problem occurred evaluating project ':integration-test'.
> Could not get unknown property 'withType' for task set of type org.gradle.api.internal.tasks.DefaultTaskContainer.

我的 build.gradle 基本上是这样的……

apply plugin: 'java'
apply plugin: 'application'

version = '1.0'
sourceCompatibility = 11
targetCompatibility = 11

repositories {
    mavenCentral()
}

dependencies {
    implementation(
        ...
    )
}

application {
    mainClassName = 'a.b.c.XYZ'
}

有什么想法吗?

【问题讨论】:

    标签: gradle build.gradle


    【解决方案1】:

    不应该用正则括号吗?

    tasks.withType(Tar) {
       duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    }
    

    或:

    tasks.withType(Tar.class).configureEach {
        duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-05
      相关资源
      最近更新 更多