Gradle exec commandLine不适合我

时间:2014-08-09 13:17:05

标签: gradle exec

我正在尝试使用gradle中的参数运行可执行文件:

task deploy(dependsOn: jar) {
    exec {
        commandLine "javafxpackager -deploy -native -outdir ${deployDirName} -outfile ${jarBaseName} -srcfiles ./${project.buildDir}/${project.libsDirName}/${jarBaseName}-${project.version}.jar -appclass ${mainClass} -name ${jarBaseName} -title '${project.description}'"
    }
}

Gradle抱怨该进程以非零返回代码结束,但是如果我复制命令并在bash终端中运行它,它可以完美地运行。

那么我做错了什么?

此致

1 个答案:

答案 0 :(得分:5)

此代码存在两个问题:首先,exec调用发生在任务操作(doLast { ... })之外。因此,在构建的配置阶段中,将为每个单独的构建调用(即使在键入exec时)调用gradle help。其次,commandLine接受命令行参数的列表,而不是单个字符串。

使用任务类型而不是相应的方法几乎总是更好,所以这变成:

task deploy(type: Exec) {
    dependsOn jar
    commandLine "javafxpackager", "-deploy",  "-native", ...
}

要了解如何配置特定任务(类型),请查看Gradle Build Language Reference