我正在尝试使用gradle exec任务挂接bat和sh文件(取决于正在运行的操作系统)。但是我无法弄清楚如何从exec任务中向bat/sh发送参数。

task testing(type:Exec) {
    workingDir '.'

    if (System.properties['os.name'].toLowerCase().contains('windows')) {
        if ( project.hasProperty("arg1") ) {
            println arg1
            args arg1
            commandLine 'cmd', '/c', 'run.bat'
        }else{
            commandLine 'cmd', '/c', 'run.bat'
        }
   }else {
        if ( project.hasProperty("arg1") ) {
            args arg1
            commandLine './run.sh'
        }else{
            commandLine './run.sh'
        }
   }
}

如果我以gradle testing -Parg1=test的身份运行此任务,则在println arg1中,它将打印测试

但是我如何将这个测试作为bat/sh文件的参数传递。

最佳答案

通过commandLine传递arg

Windows

commandLine 'cmd', '/c', 'run.bat' ,arg1

Linux/mac
commandLine './run.sh' , arg1

关于batch-file - 如何将参数从Gradle exec任务传递到命令行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47929483/

10-13 03:27