gpt4 book ai didi

java - 如果找不到文件依赖项,如何使 Gradle 构建失败?

转载 作者:搜寻专家 更新时间:2023-11-01 03:47:27 25 4
gpt4 key购买 nike

我有一个 Gradle 构建,它有一些依赖的形式

compile files('path/to/local/lib.jar')

(正在迁移构建 - 最终这些将被替换)

构建失败,因为其中一个路径指定不正确。但由于编译错误而失败了——看起来 Gradle 默默地忽略了缺失的依赖项。

如果无法解决任何依赖项(特别是本地文件依赖项)(例如,文件丢失),是否有一个简单的选项或开关会强制 Gradle 使构建失败?

编辑:进一步澄清:

如果在配置的存储库中找不到依赖项,Gradle 将在尝试解析它们时构建失败,正如预期的那样。

但是 - 如果依赖项被定义为“编译文件......”,并且指定的文件在构建时不存在,Gradle 将忽略该错误,并尝试编译。这似乎是惊人的错误的和不一致的默认行为。

我的问题是 - 是否有 Gradle 选项或开关或环境变量或系统属性我可以设置以强制 Gradle 验证文件依赖关系是否存在? (例如,以理智和理性的方式行事?)

最佳答案

这是一个有点老的话题,但鉴于目前提出的解决方案都没有实际工作,而且该解决方案似乎微不足道(整理其中两个),我将其留在这里以供将来引用。

这里的重点是我们只是想确保文件确实存在,所以我们可以只使用 File 类的 exists() 方法:

task ensureDepsExist() {
doLast {
configurations.implementation.canBeResolved(true)
Set<File> impFiles = configurations.implementation.resolve()

impFiles.forEach { f ->
if (!f.exists()) {
ant.fail "${f} could not be found"
}
}
}
}

compileJava.dependsOn ensureDepsExist

canBeResolved() 调用是必需的,否则 Gradle 将提示无法解析 configurations 依赖项。

关于java - 如果找不到文件依赖项,如何使 Gradle 构建失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42527631/

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