我有以下Gradle任务:
task makeZipDependencies << {
allDeps = (configurations.runtime + configurations.archives.allArtifacts.files).findAll {
!(it.name =~ /clover/)
} .unique()
if ("myApp".equals(project.name)) {
rootProject.childProjectsRecursive.each {
try {
databaseSqlFileDeps.put(it.name, it.configurations["mySQLFiles"].files)
} catch (UnknownConfigurationException e) {
}
}
}
当我使用java 7和gradle 1.7运行我的项目时,这并没有导致错误。
但是,我已经转移到Java 8和gradle 3.4.1,现在我收到了这个错误:
Execution failed for task "makeZipDependencies", could not get unknown property:childProjectsRecursive for root Project myApp of type org.gradle.api.project"
我需要对我的任务进行哪些更改才能解决此问题?
答案 0 :(得分:3)
Gradle的API在版本1.x(您表示1.7
)和3x(截至今天的最新版本为3.4.1
)之间发生了很大变化。
我认为你需要的是查询subprojects
属性https://docs.gradle.org/3.4.1/dsl/org.gradle.api.Project.html#org.gradle.api.Project:subprojects
rootProject.subprojects.each { ... }
不幸的是,没有单个文档可以找到版本1.x和3.x之间的所有更改。我的建议是尽可能更新构建版本,以尽量减少迁移影响。在主要版本版本之间切换时,请始终关注行为/二进制不兼容性。