我正在将一个相对较小的项目从 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/