我有两个任务:

import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar

task shadowJarW32() {
    ShadowJar sjTask32 = shadowJar {
        archiveClassifier.set('win32')
        configurations = [project.configurations.runtimeClasspath, project.configurations.implementationW32]
    }
    dependsOn(sjTask32)
}

task shadowJarW64() {
    ShadowJar sjTask64 = shadowJar {
        archiveClassifier.set('win64')
        configurations = [project.configurations.runtimeClasspath, project.configurations.implementationW64]
    }
    dependsOn(sjTask64)
}

我正在尝试让shadowJarW32/64使用已修改的特定字段来运行shadowJar任务。它与第二个完美配合,但是shadowJarW32的运行方式就像我运行shadowJarW64一样。

我发现问题是由任务的实现而不是任务的实际执行引起的,所以我认为也许只有一种方法,如果我实际运行shadowJarW64,就可以实现任务gradle shadowJarW64

我该如何解决?

最佳答案

task shadowJarW32 {
    doFirst {
        shadowJar {
            archiveClassifier.set('win32')
            configurations = [project.configurations.runtimeClasspath, project.configurations.implementationW32]
        }
    }
    finalizedBy(shadowJar)
}

task shadowJarW64 {
    doFirst {
        shadowJar {
            archiveClassifier.set('win64')
            configurations = [project.configurations.runtimeClasspath, project.configurations.implementationW64]
        }
    }
    finalizedBy(shadowJar)
}

10-06 01:37