将zip扩展为依赖项

时间:2017-06-22 13:49:31

标签: gradle nexus

在Nexus上有一个zip文件(具体来说,它是一个selenium zip文件),我需要解压缩并添加到项目的依赖项中。在工作中Nexus被锁定,所以在那里得到任何东西是痛苦的,或者我只是自己解压缩文件。我不知道如何实现这一点,因为我遇到了循环依赖。

有没有办法让这项工作?

以下是示例代码:

configurations{
    selenium
}

dependencies {
    selenium 'org.seleniumhq.selenium:selenium:3.1.0@zip'
}

task unzip(type: Copy) {
    configurations.selenium.resolvedConfiguration.resolvedArtifacts.each { artifact ->
        if (artifact.file.name.endsWith('.zip')) {
            from zipTree(artifact.file)
            into outputDir

        }
    }

}

1 个答案:

答案 0 :(得分:0)

我找到了一个不太优雅的解决方案。

    def outputDir = file('Dependency location')
    dependencies {
    compile fileTree(dir: outputDir) 
    }
    compileJava.doFirst { tasks.unzip.execute() }

    task unzip(type: Copy) {
    def f = new File(outputDir, 'selenium zip file')
    new URL('Nexus url to selenium zip').withInputStream { -> f.withOutputStream { it << i }}

    FileTree zip = zipTree(f)
    from (zip)
    into outputDir
}