Docker 如果子项目包含文件,则执行梯度任务

Docker 如果子项目包含文件,则执行梯度任务,docker,gradle,Docker,Gradle,我有一个多模块的项目。其中一些是共享的lib,还有一些生成docker容器。我想使用一个插件为所有在模块根目录中包含Dockerfile的模块构建图像 这是我的项目结构: root/ ├─ docker1/ │ ├─ Dockerfile ├─ docker2/ │ ├─ Dockerfile ├─ common/ build.gradle 如果可能的话,我不想更改模块中的任何内容,只执行一个任务。这样就可以添加更多生成图像的模块,而无需在每个模块中添加任何内容并保持构建文件干净。我已通过

我有一个多模块的项目。其中一些是共享的lib,还有一些生成docker容器。我想使用一个插件为所有在模块根目录中包含Dockerfile的模块构建图像

这是我的项目结构:

root/
├─ docker1/
│  ├─ Dockerfile
├─ docker2/
│  ├─ Dockerfile
├─ common/
build.gradle
如果可能的话,我不想更改模块中的任何内容,只执行一个任务。这样就可以添加更多生成图像的模块,而无需在每个模块中添加任何内容并保持构建文件干净。我已通过添加以下每个模块生成文件成功创建了一个映像,该文件应生成一个映像:

plugins {
    id 'com.palantir.docker' version '0.25.0'
}

docker {
    def image = String.format("myRepo:$tag")
    copySpec.from("$buildDir/libs").into("build/libs")
    name image
    printf "Built image %s", image
}
docker.dependsOn shadowJar
我这样称呼它:

$ ./gradlew :docker1:docker -Ptag=test
Built image myRepo:test
是否有可能满足上述要求?如果不是,那么在包含名为docker的任务的所有模块中,以何种方式按名称执行任务是合适的

这将失败,因为我的根项目没有该任务:

$ ./gradlew :docker
Task 'docker' not found in root project 'root'.