正在努力让Gradle生成CSV文件,并尝试为我的构建创建属性。可以从命令行传入的Gradle文件。
我在gradle.properties中插入了以下内容:
userCount=100
在我的构建。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.
如果我在构建中直接定义userCount=100
(或任何任意数字),则文件的编写工作正常。Gradle的障碍是为用户的#设置参数
您可以简单地使用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))
}
}
}
以下更改解决了我遇到的问题。当我在upto()
方法调用中直接使用userCount
时,我遇到了解析问题。下面的代码块解决了错误消息和随后的解析问题:
task writeUsersFile << {
outputFile.withWriter { out ->
1.upto(Integer.parseInt(userCount)) {
out.println(String.format(userNameFmt, it, testPassword))
}
}
}