【问题标题】:Using Leiningen in Git Bash on Windows在 Windows 上的 Git Bash 中使用 Leiningen
【发布时间】:2016-05-12 16:57:03
【问题描述】:

所以我在 Windows 上安装了 Leiningen 和 git。但是 git bash 似乎找不到 lein 命令,因为它是基于 .bat 文件的。它在 Windows 命令行中工作。有什么方法可以让 lein 命令在 git bash 中工作?

【问题讨论】:

    标签: windows clojure leiningen git-bash


    【解决方案1】:

    如果我进入 git bash 并输入 echo $PATH,我会看到与我从 dos 控制台输入 echo %PATH% 时的情况相同。

    所以我更改了 Windows Path 环境变量,使其包含C:\programs\lein,这是lein.bat 所在的位置。

    回到 git bash 我输入 lein 并得到 command not found。但是如果我输入 lein.bat 我可以看到它正在尝试运行该文件,大概就像它是一个 shell 脚本:

    Chris@CHRIS-XPS ~
    $ lein.bat
    /c/programs/lein/lein.bat: line 1: @echo: command not found
    /c/programs/lein/lein.bat: line 3: setLocal: command not found
    /c/programs/lein/lein.bat: line 7: syntax error near unexpected token `('
    /c/programs/lein/lein.bat: line 7: `if "%LEIN_VERSION:~-9%" == "-SNAPSHOT" ('
    

    因此,您可以通过输入lein.sh 来替换lein.bat 来获得更多信息。最好从您自己的 lein.sh 开始,它只尝试执行 java -jar lein.jar -cp ...(我编造了,但应该可以通过查看批处理文件(或 shell 脚本)将正确的命令拼凑在一起)。事实上,如果你的 Windows 托管lein.sh 可以启动任何 java 程序,它也应该可以启动 lein。

    【讨论】:

    • 不幸的是我不熟悉 bash。我实际上试图用“cmd”命令破解一个shell脚本来简单地执行bat文件,但这没有用。所以有一个自托管 jar,我可以通过 java -jar leiningen.Versionnumber-standalone.jar 启动它,它启动一个 repl。问题是让命令工作。每个命令(如 help、app 等)都有一个 .clj 文件,其中包含包含在 jar 中的逻辑。但我无法破译 lein.bat 实际如何转发参数以便加载命令。所以我不知道如何在 bash 中将参数转发到 lein jar。
    • 它是如何运行这个command的?也只是偷看该文件给出了另一个建议,那就是安装Cygwin
    【解决方案2】:

    首先,我将 lein.sh 脚本添加到 ~/bin 文件夹中。这个文件夹应该由 GitBash 自己添加到路径中。如果它不在 PATH 中,您可以将 lein.sh 添加到其中的任何文件夹中,或者只需将 ~/bin 添加到您的 PATH 中。比如:

    PATH=$PATH:~/bin
    

    您可以在主目录中的“~/.bashrc”上设置以下别名,以便更容易调用 Leiningen:

    alias lein='lein.bat'
    

    它在 Leiningen 2.6.1 和 Git Bash 2.8.0 上运行良好。

    【讨论】:

      猜你喜欢
      • 2018-03-04
      • 2021-05-28
      • 1970-01-01
      • 2020-01-15
      • 2019-10-14
      • 1970-01-01
      • 2016-08-19
      • 2011-04-30
      • 1970-01-01
      相关资源
      最近更新 更多