gpt4 book ai didi

bash - 指定任务的绝对路径的运行gradle会将名称解释为命令

转载 作者:行者123 更新时间:2023-12-03 03:56:02 25 4
gpt4 key购买 nike

对于这个问题,我将使用Gradle的源代码分发中包含的示例项目water。 (请参阅here。)

The code for this example can be found at samples/userguide/multiproject/tropicalWithProperties/water in the ‘-all’ distribution of Gradle.



有时在Cygwin中使用 bash时,当我运行 gradle并指定要执行的任务的绝对(逻辑)路径时,会发生一些奇怪的事情:

$ gradle :bluewhale:hello

/cygdrive/c/Program Files/Gradle/bin/gradle: line 153: bluewhale: command not found
/cygdrive/c/Program Files/Gradle/bin/gradle: line 153: hello: command not found
<-------------> 0% CONFIGURING [56ms]
FAILURE: Build failed with an exception.

* What went wrong:
Task '.' not found in root project 'water'.

* Try:
Run gradle tasks to get a list of available tasks. 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 1s

输出的前两行表示bash或gradle将冒号后的文本解释为命令。而且,似乎没有实际任务传递给gradle( Task '.' not found in root project 'water'.)。另一个示例证实了这一点:

$ gradle :"echo foo":pwd

foo
/cygdrive/c/Users/Paolo/Desktop/Sandbox/water

FAILURE: Build failed with an exception.

* What went wrong:
Task '.' not found in root project 'water'.

[...]

更加奇怪的是,它不一致:当我重新启动笔记本电脑时,问题消失了。我将添加更多调试信息,但是我不知道从哪里开始。

据我所知,这个问题一经出现,便是整个Shell范围的问题。任何Cygwin bash session 都会有相同的问题。

当使用Windows的命令行 cmd时,此方法效果很好,因此我认为它与Cygwin或Cygwin的 bash有关。

问题不取决于 gradle的路径( Program Files)中是否有空格。

最佳答案

我遇到了同样的问题,但仅在Jenkins在Windows工作程序节点上通过Cygwin以自动方式调用gradlew时才发生。
问题的根源是find脚本作为其cygwin兼容性逻辑的一部分进行了gradlew调用。事实证明,C:\Windows\System32PATH之前出现在我的C:\cygwin64\bin env var上,因此gradlew实际上是在运行Windows find命令而不是unix。 bool(boolean) 式的find调用最终导致所有包含冒号的参数被破坏。
我可以通过修改Windows节点以使其前置而不是将cygwin bin路径附加到PATH env var来解决该问题。猜测您正在遭受类似PATH的相关问题。
一种可能的替代解释是您的IFS env var设置为:,但是我怀疑这会导致外观略有不同。

关于bash - 指定任务的绝对路径的运行gradle会将名称解释为命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59673517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com