在gradle

时间:2016-05-06 06:40:32

标签: gradle

我想使用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')
}

3 个答案:

答案 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为我工作。最初当我使用它时,任务不会停止并继续执行而不会给出任何结果,但我在另一个系统中尝试过,它起作用了。感谢所有的回复,但我认为这对我来说是完美的解决方案。