Gradle exec命令行不适合我

Gradle exec命令行不适合我,gradle,exec,Gradle,Exec,我正在尝试使用gradle的参数运行可执行文件: task deploy(dependsOn: jar) { exec { commandLine "javafxpackager -deploy -native -outdir ${deployDirName} -outfile ${jarBaseName} -srcfiles ./${project.buildDir}/${project.libsDirName}/${jarBaseName}-${project.ver

我正在尝试使用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终端中运行它,那么它的工作就完美无缺了

那么我做错了什么


关于,

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

使用任务类型几乎总是比使用相应的方法更好,因此:

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

要了解如何配置特定任务(类型),请查看。

太好了,谢谢,它现在可以工作了,我很好奇为什么每次都调用deploy。干杯我还认为它接受一个字符串。文件对此有点不清楚;您需要查看命令行(列表)的类型来确定它。