Gradle-每个命令行的命令行
我有以下代码,但在命令行中只调用了Gradle-每个命令行的命令行,gradle,kotlin,Gradle,Kotlin,我有以下代码,但在命令行中只调用了configFilesPath中的最后一项 你知道我应该使用什么吗?这样它就可以为configfilepath中的每个项目运行命令行了吗 @TaskAction fun create() { project.exec({ workingDir(project.projectDir) var configFilesPath = Paths.get(System.getProperty("user.dir"), "../..
configFilesPath
中的最后一项
你知道我应该使用什么吗?这样它就可以为configfilepath
中的每个项目运行命令行了吗
@TaskAction
fun create() {
project.exec({
workingDir(project.projectDir)
var configFilesPath = Paths.get(System.getProperty("user.dir"), "../../../", "myconfig/");
//Create symlinks for all files in myconfig/
Files.list(configFilesPath).forEach{
val configFile = configFilesPath.toString() + "/" + it.fileName
commandLine("ln", "-s", configFile)
}
})
}
谢谢。请参阅:当您编写命令行(“ln”,“s”,configFile)
时,您实际上是在调用命令行
属性;如果将此调用包装在forEach
循环中,则只使用最后一个值(这是您观察到的)。实际上,Exec
任务只能有一条命令行
在本例中,您可以将project.exec({…})
调用包装到forEach
块中,以便为每个配置文件触发一个exec
调用
类似的方法应该可以工作(代码未经测试,您可能需要进行一些调整):
注意您还应该在doLast{}
块中配置任务
@TaskAction
fun create() {
var configFilesPath = Paths.get(System.getProperty("user.dir"), "../../../", "myconfig/");
// Iterate over all files in myconfig/
Files.list(configFilesPath).forEach{
val configFile = configFilesPath.toString() + "/" + it.fileName
project.exec({
workingDir(project.projectDir)
commandLine("ln", "-s", configFile)
})
}
}