gpt4 book ai didi

Gradle - "apply from"一个 ZIP 依赖​​项

转载 作者:行者123 更新时间:2023-12-03 06:13:26 25 4
gpt4 key购买 nike

在我的 Gradle 构建脚本中,我想导入一个包含静态分析配置(CheckStyle、PMD 等)的 ZIP 依赖​​项,然后从该 ZIP 中的文件“应用”。当任何人运行“检查”任务时,应该使用我的自定义静态分析配置。

我已经尝试了下面有点复杂的解决方案,但我无法让它工作。文件被检索并解压到“config”目录,但“apply from”不起作用——Gradle 提示找不到文件;我认为这是由于在构建配置阶段运行的“应用自”。

有没有更简单的方法来做到这一点?

repositories {
maven { url MY_MAVEN_REPO }
}

configurations {
staticAnalysis {
description = "Static analysis configuration"
}
}

dependencies {
staticAnalysis group:'my-group', name:'gradle-static-analysis-conf', version:'+', ext:'zip'
}

// Unzip static analysis conf files to "config" in root project dir.
// This is the Gradle default location.
task prepareStaticAnalysisConf(type: Copy) {
def confDir = new File(rootProject.projectDir, "config")
if (!confDir.exists()) {
confDir.mkdirs()
}
from {
configurations.staticAnalysis.collect { zipTree(it) }
}
into confDir
apply from: 'config/quality.gradle'
}

check.dependsOn('prepareStaticAnalysisConf')

最佳答案

你完全正确:Gradle 运行 apply在评估阶段,但 prepareStaticAnalysisConf尚未执行,存档未解压缩。

而不是一个任务,只需编写一些顶级代码。它应该可以解决问题。此外,您最好使用 buildscript 级别的依赖项,以便在执行脚本之前解决它。

这是完整的脚本

buildScript {
repositories {
maven { url MY_MAVEN_REPO }
}
dependencies {
classpath group:'my-group', name:'gradle-static-analysis-conf', version:'+', ext:'zip'
}
}

def zipFile = buildscript.configurations.classpath.singleFile
copy {
from zipTree(it)
into 'config'
}

apply from: 'config/quality.gradle'

关于Gradle - "apply from"一个 ZIP 依赖​​项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32843428/

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