gpt4 book ai didi

gradle - 使用根目录路径代替zipTree的子项目路径

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

我有这个项目结构

journey\
applications\
desktop\
core\

我有一个下载 .zip存档的任务。
task download_redis(type: Download) {
src 'https://github.com/MSOpenTech/redis/releases/download/win-3.2.100/Redis-x64-3.2.100.zip'
dest new File("applications/redis/install", 'Redis-x64-3.2.100.zip')
onlyIfNewer true
}

它将 zip文件保存到 applications\redis\install中。
然后,我还有另一个任务,应该将 zip文件的内容提取到 applications/redis中。
task install_redis(dependsOn: download_redis, type: Copy) {
from zipTree(download_redis.dest)
into 'applications/redis'
}

但是我得到这个错误
Cannot expand ZIP 'L:\journey\desktop\applications\redis\install\Redis-x64-3.2.100.zip' as it does not exist.

似乎试图从 zip项目解析到 desktop的路径,尽管它的级别更高- root

如何设置 zipTree使用 root而不是子项目的路径? (尽管这两个任务都在 desktop子项目中)

最佳答案

您可以像这样访问各种路径:

println project(":applications").projectDir
println project(":desktop").projectDir
// root
println project(":").projectDir

这是一个使用欺骗性zip下载的 :desktop:build.gradle文件示例。注意 applicationsDir变量。 (我假设您使用的插件与指定的插件相同。):
plugins {
id "de.undercouch.download" version "1.2"
}

apply plugin: 'de.undercouch.download'

import de.undercouch.gradle.tasks.download.Download

def applicationsDir = project(":applications").projectDir

task download_redis(type: Download) {
src 'https://github.com/codetojoy/Git_Sandbox/raw/master/tmp/example.zip'
dest new File("${applicationsDir}/redis/install", 'Redis-x64-3.2.100.zip')
onlyIfNewer true
}

task install_redis(dependsOn: download_redis, type: Copy) {
from zipTree(download_redis.dest)
into "${applicationsDir}/redis"
}

关于gradle - 使用根目录路径代替zipTree的子项目路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39301565/

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