【问题标题】:Create Gradle task to export Android source as .zip file创建 Gradle 任务以将 Android 源代码导出为 .zip 文件
【发布时间】:2014-01-20 15:44:18
【问题描述】:

我已经尝试使用 Gradle Zip 任务来执行此操作,如下所示:

task srcZip(type: Zip) {
    classifier = 'src'
    from sourceSets*.allSource
}

但是,即使命令行的构建过程成功,该过程完成后我的构建文件夹中也没有 .zip 文件。有人知道我的代码有什么问题吗?我对 groovy 并没有真正的经验,所以也许我犯了一个非常愚蠢的错误......

感谢您的帮助!

【问题讨论】:

  • assemble.dependsOn = srcZip?
  • 你到底是什么意思?我应该在函数中添加这个赋值吗?当我在函数之后使用分配时,出现以下错误:'Cannot cast object'task':srcZip'' with class 'org.gradle.api.tasks.bundling.Zip_Decorated' to class 'java.lang.Iterable''

标签: android build zip gradle


【解决方案1】:

抱歉,有错误的评论不清楚。尝试将此添加给您build.gradle

assemble.dependsOn srcZip

现在,当您运行 assemble 时,它​​会压缩您的源代码。

您的 zip 任务需要更正的小补充:

task srcZip(type: Zip) {
    classifier = 'src'
    from android.sourceSets*.allSource
    from android.sourceSets*.resource
}

【讨论】:

  • 好的,太好了。现在,当我运行 gradle assemble 时,我得到一个 zip 文件。谢谢!但这并不是我想要的。我需要我所有的项目内容都在这个 zip 文件中,以便我可以从中构建一个 apk。我得到的 zip 文件只有 145kb。你能帮我解决这个问题吗?
  • 您需要什么员工?为什么不在 VCS 中使用标签?
  • 我需要 CI 的所有资源、java 文件和资产来构建 apk 文件。
  • 所以你在本地运行 build.gradle 并将 zip 文件发送到 CI 之后?
  • 是的,这就是我现在想做的。
【解决方案2】:

感谢您的帮助,尤金。这个解决方案对我有用:

task srcZip(type: Zip) {
from projectDir
exclude 'build'
}

您可以添加所有其他要排除的文件和目录,您不想被压缩。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-24
    • 1970-01-01
    相关资源
    最近更新 更多