gradle - Gradle:处理依赖项更改
问题描述
我有命令行工具,假设awsomeBuilder
我需要构建一些异国情调的项目。
该工具有两个期望:
- 所有
jar
-file-dependencies 都包含在项目目录中的某个位置 - 所有
jar
的文件依赖都在一些整洁的、巨大的 XML 文件中引用
我想使用 gradle 管理这些依赖项,所以我声明了一个新的
configurations {
awsomebuilder
}
配置。在此配置中,我添加了我的依赖项
dependencies {
awsomebuilder 'com.google.guava:guava:28.0-jre'
}
目前我有这两个任务:
task fetchAwsomeDependencies(type:Copy, group:"awsomeBuilder") {
from configurations.awsomebuilder
into "libs"
}
task buildAwsome(type:Exec, group:"awsomeBuilder") {
ext.outputDir = layout.buildDirectory.dir("awsome_build").get()
dependsOn(fetchAwsomeDependencies)
commandLine 'cmd', '/c', 'awsomeBuilder', '-o', file("${outputDir}").absolutePath
ignoreExitValue true
outputs.dir outputDir
}
我的问题是,如果我更改依赖项,我只会复制新的依赖项。我不会删除旧的。
一种解决方案是,始终首先删除所有内容,lib
然后复制新的依赖项。虽然这对于 lib 目录来说很简单(尽管可能效率低下),但我还需要更改配置 XML 文件,而在这里它变得乏味。
AFAIK,gradle 跟踪依赖项更改,因此它可以决定仅在必要时运行任务。
这让我想知道,是否可以查询 gradle 以获取依赖项更改列表:删除这个,添加那个,......
或者是否有任何很酷的技巧可以尽可能干净地解决我的问题。