gradle - 如何使用 Gradle 生成源代码的 ZIP?

标签 gradle zip software-distribution

我正在将一个相对较小的项目从 Ant 转换为 Gradle。我希望将构建脚本中的行数减少大约 75%!

Ant 构建所做的一件事是生成一个源 ZIP(即整个项目的 ZIP,删除了某些位 - ./build、各种 Eclipse 文件夹等)。在将其迁移到 Gradle 的同时,我决定使用“inclusive ” 方法,而不是“排他性”方法,以便以后不会意外包含内容。

我希望能够获取所有源集的源代码和资源,而不必明确列出目录,但我无法让它工作。

这是我到目前为止所拥有的(甚至没有运行!):

task srcZip(type: Zip) {
    classifier = 'src'
    from projectDir
    include {
        sourceSets.collect {
            it.allSource.asPath
        }
    }
}

ZIP 文件应该以文件夹“src/main/java/...”、“src/main/resources/...”、“src/test/java/...”等结尾,我应该当我稍后添加更多源集时,不需要重新访问此任务。

提前致谢!

最佳答案

要将所有来源放入 1 个 zip 文件中,您可以使用以下命令:

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

它不会给你你要求的目录结构。来自所有源集的文件被放入相同的层次结构中。

要获得您所要求的内容,您可以使用以下命令:
task srcZip2(type: Zip) {
    classifier = 'src'
    from projectDir
    include 'src/**/*'
}

当然,它没有考虑您可能对源目录位置进行的任何更改。

关于gradle - 如何使用 Gradle 生成源代码的 ZIP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4822521/

相关文章:

linux - 如何在 linux 中将多个子文件夹压缩成单独的文件?

java - 使 Java 程序在线供所有人使用

macos - 如何打包 node web-kit 应用程序以在 mac 应用程序商店中发布?

android-studio - 在Android Studio中配置代码参数以基于构建目标进行异常处理?

android - 错误 :Execution failed for task ':app:transformResourcesWithMergeJavaResForRelease'

android - TID 21198(Crashlytics Exc)中的致命信号11(SIGSEGV),代码2,故障加法器0x7fa4c3813c

python - innosetup 创建的可执行文件中出现 "Failed to execute script"错误

java - Gradle找不到本地依赖项目

git - git 是否巧妙地处理其中只有一个文件定期更改的 zip 存档?

javascript - 将 zip 文件返回到 angularjs 进行下载