Gradle任务在Android中解压缩maven repo

4nkexdtk  于 2023-06-20  发布在  Android
关注(0)|答案(1)|浏览(120)

我正在尝试解压缩本地maven repo并将文件复制到app\libs目录中。存储库是一个.zip文件,该zip文件包含.a文件和头文件。此外,我希望此任务在preBuild上运行。我尝试了两种方法。

方法1zipArchive group:行抛出编译错误,说明依赖项zipArchive已经解析。

android {
    
    configurations {
        zipArchive
    }

    task unzip(type: Copy) {
       def configZipTree = zipTree(configurations.zipArchive.singleFile) //If I comment this line, build compiles but the unzip functionality doesn't work obviously
       from configZipTree
       into "$buildDir/../libs"
    }
    preBuild.dependsOn unzip
}
dependencies {
       zipArchive group: 'com.example.lib', name: 'testlib', version: '1.0', ext: 'zip'
}

方法2在此方法中,我将unzip任务放在android块外,但现在我不知道如何使preBuild任务依赖于此unzip任务。这种方法通过运行\.gradlew unzip来工作,但不依赖于preBuild

我怎样才能使任何的方法来工作?

2admgd59

2admgd591#

我是这样解决这个问题的。

android {   

    configurations {
        zipArchive
    }

    task unzip(type: Copy) {
        from {
            configurations.zipArchive.collect { zipTree(it) }
        }
        into "$buildDir/../libs"
    }

    preBuild.dependsOn unzip
}
dependencies {
       zipArchive group: 'com.example.lib', name: 'testlib', version: '1.0', ext: 'zip'
}

注意:这不是调用configuration的最优化方法,因为gradle会抱怨它影响构建时间。

相关问题