当前位置: 首页 > 知识库问答 >
问题:

Gradle 不会运行我想要的 shell 命令行

白腾
2023-03-14

我做过很多Android开发,从来不需要很好地理解gradle。

理想情况下,我会在设置virtualenv后运行python脚本,但对于这个问题,我很乐意使用MWE。

task rem(type: Exec)  {
    doLast {
        exec {
            workingDir '.'
            commandLine 'dir'
        }
    }
}

结果:

> Task :app:rem FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:rem'.
> execCommand == null!

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2s
1 actionable task: 1 executed

假设我回到我在炮轰之前如何声明我的任务:

task rem  {

没有(type: Exec)我得到:

> A problem occurred starting process 'command 'dir''

之前我在哪里

> execCommand == null!

我只有以下命令行可用:

task rem(type: Exec)  {
    commandLine 'python', '--version'
}

将主体替换为命令行“dir”失败

...
> A problem occurred starting process 'command 'dir''
...

共有1个答案

应翰飞
2023-03-14

最终偶然发现了运行windows脚本的https://stackoverflow.com/a/37871837/866333,并发现链接,https://stackoverflow.com/a/50394682/866333,更容易。

task rem(type: Exec)  {
    commandLine 'cmd', '/c', "cd && virtualenv --python=\"C:\Program Files\Python38\python.exe\" C:\Users\XXX\AndroidStudioProjects\YYY\virtualenvs\ZZZ"
}

上面的代码片段非常成功(使用了双引号,因此我可以从早期的计算中替换XXX-YYY-ZZZ。它不漂亮,但python脚本会很漂亮。

希望这将为另一个毕业生新手节省我需要的时间。

记下 cd 以开始(标称)链。我不在我预期的目录中。

 类似资料:
  • 但当我在命令行上运行该命令时,它会抛出以下错误: 我可以成功地运行其他的adb命令,我不知道aapt命令有什么问题。另外,我正在Windows7环境下进行开发。

  • 我试图从jenkins master中触发特定节点的execute shell中的gradle命令,它正在运行一个异常,如下所示- 但是,如果am试图在本地工作区下的同一节点中执行shell,则gradle命令可以工作。 null 授予对。gradle的读写访问权限 在这里,node-jenkins和master-jenkins都安装了gradle V2.5。为什么执行shell触发从主人詹金斯找

  • 问题内容: 我在一个应用程序上工作,但有一个关于从Java应用程序运行shell命令的问题。这是代码: 但是当我尝试执行命令时: myapp读取 为两个单独的参数。但是我只想读取一个参数。 当我直接从终端运行此命令时,它执行成功。 我试过,, 但对我没有工作。我如何才能将此参数作为一个参数读取。 问题答案: 我记得exec方法的重载分别为参数提供了一个参数。你需要用那个 对。就这个 只需将命令行和

  • 我想使用从gulp运行shell命令。我看到下面这个成语被用于gulpfile。 这是从吞咽任务中运行命令的惯用方法吗?

  • 我正在尝试编写一个Java代码,它可以ssh到Unix服务器并重置用户密码。所以我尝试实现SO中的一些代码。 如。 通过JavaJSch通过ssh向远程服务器发送命令 从字符串中获取命令(密码)并设置为InputStream到Java(JSCH)中的Unix服务器 使用JSch,我按照此链接获取重置用户密码的正确命令。 当我试着运行这段代码时,它似乎没有重置用户的密码。因此,我尝试直接从Unix的

  • 我有一个示例项目:https://github.com/svprdga/web-reactive-frameworks-comparison/tree/master/vertx-ktorm 我想从CLI运行它,但是我不能。我试图创建jar文件,但是当我运行它时,它提示: 有什么帮助吗?