我想使用gradle任务创建整个代码库的zip。我正面临一个问题来获得parentDir。我尝试过使用project,project.rootDir,project.rootProject,projectDir,project,sourceSets * .allSource。我没有得到任何正确的输出。我只使用项目,它给了我一个只包含子项目文件的zip。有什么指针吗? 我的任务看起来像这样:
task srcZip(type:Zip){
from project
exclude('**/*//*.iml', '*//*build/', '*//*dist')
exclude('*.zip')
destinationDir file('dist')
}
答案 0 :(得分:2)
我从根目录构建了源代码zip,其中包含一系列项目:
ave(df$value, df$path1, FUN = prop.table)
它允许我选择要归档的项目子集。不要忘记过滤掉from ('./') {
include ([':proja',':projb',...].collect {
relativePath(project(it).projectDir) + '/'
})
}
和build/
等临时目标。
.gradle/
或relativePath(project.rootDir)
可让您访问多项目仓库的顶部。
答案 1 :(得分:0)
如果您将任务放在根项目build.gradle中,则可以执行以下操作:
task srcZip(type: Zip) {
subprojects.each { project ->
from project.sourceSets.main.allSource
}
exclude('**/*//*.iml', '*//*build/', '*//*dist')
exclude('*.zip')
destinationDir file("dist")
baseName = "sourcecode"
}
此代码假设了以下几点:
1)所有子项目都有源集。如果不是这种情况,则必须添加支票。
2)根项目中没有源代码。如果有,并且您希望添加它,则可以添加以下行:
from project.sourceSets.main.allSource
答案 2 :(得分:0)
project.parent.projectDir为我工作。最初当我使用它时,任务不会停止并继续执行而不会给出任何结果,但我在另一个系统中尝试过,它起作用了。感谢所有的回复,但我认为这对我来说是完美的解决方案。