导出属性时,Gradle错误消息“无法在项目中找到属性”

时间:2017-03-07 22:12:11

标签: java gradle war

我有一个看起来像这样的多项目:

main-web-app
\- web-app-1
\- web-app-2

每个模块都有 build.gradle 文件。我需要生成一个 main-web-app.war (实际上是一个战争爆炸的目录),它将包含子模块中的所有内容。

所以每个子模块build.gradle都是这样的:

apply plugin: 'war'
//...
task explodedWar(type: Copy) {
    project.ext.buildExplodedDir = "$buildDir/webapps/web-app-1"
    into "$buildDir/webapps/web-app-1"
    with war
}
war.dependsOn explodedWar

并且主网络应用 build.gradle (以及这里的问题)应如下所示:

war {
    from fileTree(project(':web-app-1').buildExplodedDir)
    from fileTree(project(':web-app-2').buildExplodedDir)
}

但后来我收到此错误消息:

Could not find property 'buildExplodedDir' on project ':web-app-1'

让我的父项目找到什么是“buildExplodedDir”的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

for i in range(years):
    average = "=AVERAGE("
    average += chr(65+i)
    average += "1:"
    average += chr(65+i)
    average += str(x)
    average += ")"
    worksheet.write(x, i, average)

您可能还需要告诉gradle首先解析子模块。所以在你的父gradle文件中只需添加类似这样的内容

apply plugin: 'war' //... task explodedWar(type: Copy) { if (!rootProject.hasProperty('buildExplodedDir')) { rootProject.ext.buildExplodedDir = [] } rootProject.ext.buildExplodedDir << "$buildDir/webapps/web-app-1" into "$buildDir/webapps/web-app-1" with war } war.dependsOn explodedWar