iso*_*tel 9 multi-project gradle
在我的根build.gradle文件中,我为所有组件应用常见任务:
apply from: rootProject.file('common/component.gradle')
Run Code Online (Sandbox Code Playgroud)
在子项目中我定义了componentTitle:
ext {
componentTitle = 'application1'
}
Run Code Online (Sandbox Code Playgroud)
component.gradle:
jar {
manifest {
attributes 'Implementation-Title': componentTitle
}
}
Run Code Online (Sandbox Code Playgroud)
我收到错误:
A problem occurred evaluating script.
> No such property: componentTitle for class: org.gradle.api.java.archives.internal.DefaultManifest
Run Code Online (Sandbox Code Playgroud)
看来,您不仅将这种通用配置应用于子项目,而且也应用于根项目,尽管它没有这样的属性。要将其仅应用于子项目,可以像这样进行配置:
subprojects {
apply from: rootProject.file('/component.gradle')
}
Run Code Online (Sandbox Code Playgroud)
componentTitle但即使现在,如果您按照以前的方式传递该属性(作为子项目脚本体的一部分),Gradle 也不会找到该属性。您需要gradle.properties在所有子项目目录中创建一个文件,并将此属性移到此属性文件中,像往常一样:
componentTitle=application1
Run Code Online (Sandbox Code Playgroud)
然后 Gradle 将能够在配置阶段找到它
| 归档时间: |
|
| 查看次数: |
1234 次 |
| 最近记录: |