You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Gradle Zip任务仅包含SVN/Git已提交文件?

Gradle Zip任务仅打包已提交至Git/SVN的文件

如果你需要配置Gradle的Zip任务,仅打包目录中已提交到Git或SVN的文件,可以通过调用版本控制工具的命令获取已跟踪文件列表,再在任务中过滤包含这些文件。

针对Git仓库的配置

通过git ls-files命令获取所有已跟踪的文件,将结果作为Zip任务的包含规则:

task myTask(type: Zip) {
    def projectDir = file("/path/to/my-project")
    // 执行git ls-files获取所有已跟踪文件的相对路径
    def trackedFiles = exec {
        workingDir projectDir
        commandLine "git", "ls-files"
        standardOutput = new ByteArrayOutputStream()
    }.standardOutput.toString().split("\n")

    from projectDir
    include trackedFiles
}

针对SVN仓库的配置

通过svn status --quiet命令获取已提交/已跟踪的文件,提取路径后作为包含规则:

task myTask(type: Zip) {
    def projectDir = file("/path/to/my-project")
    // 执行svn status获取状态信息,提取已跟踪文件的相对路径
    def trackedFiles = exec {
        workingDir projectDir
        commandLine "svn", "status", "--quiet"
        standardOutput = new ByteArrayOutputStream()
    }.standardOutput.toString().split("\n").collect { line ->
        line.trim().substring(1).trim()
    }.findAll { !it.isEmpty() }

    from projectDir
    include trackedFiles
}

说明

  • 两种方案都是通过执行版本控制工具的命令来精准获取已提交/已跟踪的文件列表,确保打包内容仅包含仓库中已记录的文件。
  • 注意替换/path/to/my-project为你的实际项目目录路径。

内容的提问来源于stack exchange,提问作者eastwater

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 10:27:13