【问题标题】:Could not get property unknown property '' for a task无法获取任务的属性未知属性“”
【发布时间】:2016-10-14 19:43:04
【问题描述】:

努力让 Gradle 生成一个 CSV 文件,并尝试为我的 build.gradle 文件创建可以从命令行传入的属性。

我在 gradle.properties 中插入了以下内容:

userCount=100

在我的 build.gradle 文件中

    task writeUsersFile << {
    if (project.hasProperty('userCount')){
        args = getProperty(userCount)
    }
    outputFile.withWriter { out ->
    1.upto($userCount) {
      out.println(String.format(userNameFmt, it, testPassword))
    } 
  } 
}

当我通过命令行运行 Gradle 进程时,我遇到以下情况:

Could not get unknown property '100' for task ':writeUsersFile' of type org.gradle.api.DefaultTask.

如果我从命令行传递参数,它会将错误从默认值“100”适当地更新为我传递的值。

也试过了:

task writeUsersFile << {
    userCount = project.hasProperty('userCount') ? project.userCount : ''
    outputFile.withWriter { out ->
    1.upto($userCount) {
      out.println(String.format(userNameFmt, it, testPassword))
    }
  }
}

结果是:

Could not get unknown property '$userCount' for task ':writeUsersFile' of type org.gradle.api.DefaultTask.

如果我直接在 build.gradle 中定义 userCount=100(或任何任意数字),则文件的编写工作正常,障碍是为 # of users 设置参数。

【问题讨论】:

  • 我的回答解决了你的问题吗?如果是,您是否介意接受将这个问题标记为已解决的答案?见here。如果否,请在您的问题中添加更多详细信息或您在答案中缺少什么。
  • 您的回答帮助我找到了正确的答案。在任务块中声明属性时,我仍然遇到问题。我采纳了您的建议,只使用“userCount”,并将添加为我解决问题的方法。

标签: gradle build.gradle


【解决方案1】:

您可以简单地使用userCount 而不使用getProperty 并且符号$userCount 仅在双引号字符串中进行评估:

task writeUsersFile << {
    t_userCount = project.hasProperty('userCount') ? userCount : 0
    outputFile.withWriter { out ->
    1.upto(t_userCount) {
      out.println(String.format(userNameFmt, it, testPassword))
    }
  }
}

【讨论】:

    【解决方案2】:

    以下更改解决了我遇到的问题。当我在upto() 方法调用中直接使用userCount 时,遇到了解析问题。以下块解决了错误消息和后续解析问题:

    task writeUsersFile << {
        outputFile.withWriter { out ->
        1.upto(Integer.parseInt(userCount)) {
          out.println(String.format(userNameFmt, it, testPassword))
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-10
      • 2021-01-30
      • 2020-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多