【问题标题】:Could not get unknown property for task in Gradle?在 Gradle 中无法获取任务的未知属性?
【发布时间】:2017-03-07 15:36:28
【问题描述】:

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

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

【问题讨论】:

    标签: java gradle groovy


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多