我有一个依赖于另一个项目的Gradle构建项目。我的项目应该从其他项目中提取zip存档并提取存档。存档中的一个文件叫做" name.txt",里面是一个字符串,我需要在我的" build"中传递一个参数。任务。
def unzippedDir = file('build/dependencies/unzippedDir').getAbsolutePath()
configurations {
zipArchive
}
dependencies {
ziparchive "<path>"
}
task unzip(type:Copy) {
into unzippedDir from zipTree(configurations.zipArchive.singleFile)
}
task build {
dependsOn unzip
def name = new File(unzippedDir + '/name.txt').text
// <the test of the build steps that uses the "name" variable>
}
但我得到了一个&#34;没有文件或目录&#34; &#34; name.txt&#34;的错误。难道我做错了什么?
我在解压缩的目录中看到的是,zip存档中只有一个文件最终出现在unzippedDir中。 &#34; name.txt&#34;即使是另一个文件,也不存在。这是否意味着我对解压缩任务做错了什么?
答案 0 :(得分:4)
试试这个:
并检查您的配置名称,因为那里存在拼写错误。
def unzippedDir = "$buildDir/dependencies/unzippedDir"
task unzip(type: Copy) {
configurations.zipArchive.asFileTree.each {
from(zipTree(it))
}
into unzippedDir
}
build.dependsOn unzip
答案 1 :(得分:0)
尝试:
task build {
dependsOn unzip
doLast {
def name = new File(unzippedDir + '/name.txt').text
<the test of the build steps that uses the "name" variable>
}
}