【问题标题】:Gradle exec commandLine not working for meGradle exec commandLine 不适合我
【发布时间】:2014-08-10 00:44:27
【问题描述】:

我正在尝试使用来自 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 终端中运行它,它可以完美运行。

那我做错了什么?

问候,

【问题讨论】:

    标签: gradle exec


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 太好了,谢谢,它现在可以工作了,我很好奇为什么每次都调用 deploy 。干杯!
    • 我也认为它接受一个字符串。文档对此有点不清楚;您需要查看 commandLine (List) 的类型才能弄清楚。 docs.gradle.org/current/dsl/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    相关资源
    最近更新 更多