努力让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
(或任意数字),那么文件的写入工作正常,包版就是为用户设置参数。
答案 0 :(得分:0)
您可以在不使用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))
}
}
}
答案 1 :(得分:0)
以下更改解决了我遇到的问题。当我在userCount
方法调用中直接使用upto()
时遇到了解析问题。以下块解决了错误消息和后续解析问题:
task writeUsersFile << {
outputFile.withWriter { out ->
1.upto(Integer.parseInt(userCount)) {
out.println(String.format(userNameFmt, it, testPassword))
}
}
}