无法在Gradle中获取任务的未知属性?

时间:2017-03-07 15:36:28

标签: java gradle groovy

我有以下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" 

我需要对我的任务进行哪些更改才能解决此问题?

1 个答案:

答案 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之间的所有更改。我的建议是尽可能更新构建版本,以尽量减少迁移影响。在主要版本版本之间切换时,请始终关注行为/二进制不兼容性。