Java 在某些情况下,如何跳过由bmuschko/GradleDocker插件引入的gradle任务?
我使用gradle插件将docker与gradle集成。我在build.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
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段