gpt4 book ai didi

c++ - 子项目任务运行时 Gradle 任务未运行

转载 作者:太空宇宙 更新时间:2023-11-04 13:21:13 25 4
gpt4 key购买 nike

我有一个 gradle c/cpp 项目,它有 rootProject/project/subProject

在我的根 build.gradle 中有

ext.libFolder = rootDir.toString + '/lib/'
subprojects {
build.doLast {
copy {
from fileTree ( buildDir.getCanonicalPath() ).files
into rootProject.ext.libFolder
include '*.so'
include '*.a'
}
}
}

这在我执行 gradle build 时非常有效,但如果我执行 gradle :project:subProject:build 它不起作用...无论我如何调用构建任务,我需要更改什么才能使它正常工作?

附带说明一下,我们正在努力使所有子项目的 build.gradle 文件尽可能少、尽可能简单并且在结构上尽可能相同,因为我们有 780 多个文件。

编辑:我添加了一个清理任务,如下所示,这样 gradle 就会知道文件已清理。然而,这似乎不会影响核心问题,即构建任务在以 gradle 构建以外的任何方式调用时不会运行 doLast 任务。

clean {
delete rootProject.ext.includesFolder
delete rootProject.ext.libfolder
}

最佳答案

build.doLast{} 粘贴到 afterEvaluate{} block 中。

subprojects {
afterEvaluate{
build.doLast {
copy{
from fileTree ( buildDir.getCanonicalPath() ).files
into rootProject.ext.libFolder
include '*.so'
include '*.a'
}
}
}
}

因为您想在子项目构建任务可用后添加 doLast 功能。

关于c++ - 子项目任务运行时 Gradle 任务未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35181097/

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