Gradle重复处理策略问题

Gradle Duplicate handling strategy Problem

我有一个多项目成绩。

root
  +---- Project A
  +---- Project B

项目 A 依赖于项目 B。但是 gradle 首先编译项目 A,然后编译项目 B。

我的文件: settings.gradle

rootProject.name = 'rootProject'
include 'projecta'
include 'projectb'

项目 A build.gradle

dependencies {
    implementation project(':projectb')
    implementation fileTree(dir: '../lib', include: '*.jar')
}

当我构建时出现错误。但我不知道要复制处理策略

错误:

Execution failed for task ':projectb:distTar'.
> Entry /lib/projecta.jar is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.1/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.
task copyJarToLib(type: Copy) {
    if (project.name == 'projecta') {
        copy {
            from jar
            into '../lib'
            eachFile { file ->
                println 'Copying file ' + file + ' to ./lib'            
            }
        }        
    }
}

distZip.finalizedBy = [copyJarToLib]

但是它将文件复制到早期。我想在整个模块完成后复制文件

这对我有用

task copyDxComToLib(dependsOn: jar) {
    doLast {
        println '*** COPY PROJECTA.JAR TO LIB ***'
        copy {
            from '../build/projecta.jar'
            into '../lib'
            eachFile { file ->
                println '*** Copying file ' + file + ' to ./lib'
            }
        }
        
        println '*** COPY PROJECTA.JAR TO LIB ***'
    }
}

distZip.dependsOn = [copyprojectaDxComToLib]