gpt4 book ai didi

Gradle 任务依赖项仅适用于 allprojects 部分中的 rootProject

转载 作者:行者123 更新时间:2023-12-03 05:56:47 27 4
gpt4 key购买 nike

我有一个 gradle 任务来为我的所有项目构建 docker 镜像。除了 rootProject 之外,这些都运行良好其中有一个依赖任务要在 DockerimageBuild itself. This dependency should only apply for the 之前执行rootProject` 而不是子项目。
我广泛搜索并阅读了文档,但没有找到添加依赖项的完美解决方案,可能我错过了一个明显的点。

这是我的任务(去掉了一些 gradle 文件)。

allprojects {
apply plugin: com.bmuschko.gradle.docker.DockerRemoteApiPlugin
repositories { jcenter() }

docker {
registryCredentials {
username = dockerRegistryUsername
password = dockerRegistryPassword
}
}

// task build_DockerImage(type: DockerBuildImage, dependsOn: [copy_ImageSource, prepare_ImageConfig]) {
task build_DockerImage(type: DockerBuildImage) {
group 'Docker'
description "Builds the docker image: ${dockerTag} locally"
println "Project: ${rootProject.projectDir}/ci/images/${project.name}"
inputDir = file("${rootProject.projectDir}/ci/images/${project.name}")
tag = "azeti/${project.name}:${dockerTag}"
}

它应该有 dependsOn: copy_ImageSource但我无法弄清楚它的正确符号。

谢谢你的帮助。
问候,
塞巴斯蒂安

最佳答案

解决方案很简单,只需将当前项目的名称与根项目的名称进行比较,然后仅应用 dependsOn比赛。

为了简单起见,我去掉了其余的代码,检查 if 条件。

task build_DockerImage(type: DockerBuildImage) {
group 'Docker'
description "Builds the docker image: ${dockerTag} locally"
if(project.name.equals(rootProject.name) ) {
dependsOn copy_ImageSource
}
inputDir = file("${rootProject.projectDir}/ci/images/${project.name}")
tag = "azeti/${project.name}:${dockerTag}"
}

关于Gradle 任务依赖项仅适用于 allprojects 部分中的 rootProject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44416388/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com