Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle-每个命令行的命令行_Gradle_Kotlin - Fatal编程技术网

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)
        })
    }
}