我有以下 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"
我需要对我的任务进行哪些更改才能解决此问题?
最佳答案
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 之间的所有更改。我的建议是尽可能更新构建版本以尽量减少迁移影响。在主要发行版本之间切换时,始终注意行为/二进制不兼容问题。
关于java - 无法在 Gradle 中获取任务的未知属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42652302/