Java 在某些情况下,如何跳过由bmuschko/GradleDocker插件引入的gradle任务?

Java 在某些情况下,如何跳过由bmuschko/GradleDocker插件引入的gradle任务?,java,gradle,docker,Java,Gradle,Docker,我使用gradle插件将docker与gradle集成。我在build.gradle文件中创建了一些任务: task copyJar(type: Copy) { dependsOn build from project.file("$project.buildDir/libs/" << jarName) into project.file("$project.buildDir/docker") } task createDockerfile(typ

我使用gradle插件将docker与gradle集成。我在build.gradle文件中创建了一些任务:

    task copyJar(type: Copy) {
    dependsOn build

    from project.file("$project.buildDir/libs/" << jarName)
    into project.file("$project.buildDir/docker")
}

task createDockerfile(type: Dockerfile) {
    dependsOn copyJar

    // Generate Dockerfile
}

task buildDockerImage(type: DockerBuildImage) {
    dependsOn createDockerfile

    inputDir = createDockerfile.destFile.parentFile
    tag = 'example.com/' << jar.baseName
    if (project.hasProperty('imageTag')) {
        tag += ':' << imageTag
    }
}
task pushDockerImage(type: DockerPushImage) {
    dependsOn buildDockerImage
    conventionMapping.imageName = { 'example.com/' + jar.baseName }
    if (project.hasProperty('imageTag')) {
        conventionMapping.tag = { imageTag }
    }
}

因此这里跳过了
buildDockerImage
,但没有跳过
pushDockerImage
。我怎么能跳过它呢?

我认为您需要在任务copyJar上声明创建的图像作为PushDockRimage任务的输入。 比如:

task pushDockerImage(type: DockerPushImage) {
    dependsOn buildDockerImage
    inputs.file project.file("$project.buildDir/docker")
    ...

参见gradle用户指南第17.9段:有关详细信息,我认为您需要在任务copyJar上声明创建的图像作为pushDockerImage任务的输入。 比如:

task pushDockerImage(type: DockerPushImage) {
    dependsOn buildDockerImage
    inputs.file project.file("$project.buildDir/docker")
    ...
有关详细信息,请参见gradle用户指南第17.9段