Gradle,提取依赖项zip并使用其文件中的内容?

时间:2017-06-30 15:12:21

标签: gradle build.gradle

我有一个依赖于另一个项目的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;即使是另一个文件,也不存在。这是否意味着我对解压缩任务做错了什么?

2 个答案:

答案 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>
    }
}