在我的根build.gradle文件中,我为所有组件应用通用任务:
apply from: rootProject.file('common/component.gradle')
在子项目中,我定义了组件标题:
ext {
componentTitle = 'application1'
}
component.gradle:
jar {
manifest {
attributes 'Implementation-Title': componentTitle
}
}
我收到错误:
A problem occurred evaluating script.
> No such property: componentTitle for class: org.gradle.api.java.archives.internal.DefaultManifest
看起来,您不仅将这种通用配置应用于子项目,还将其应用于根项目,尽管它没有这样的属性。为了仅将其应用于子项目,可以这样进行配置:
subprojects {
apply from: rootProject.file('/component.gradle')
}
但即使是现在,如果以您的方式传递componentTitle
属性(作为子项目脚本体的一部分),Gradle也找不到它。您需要在所有子项目目录中创建一个gradle.properties
文件,并像往常一样将此属性移动到此属性文件中:
componentTitle=application1
然后Gradle将能够在配置阶段找到它