【问题标题】:Cannot build Jekyll blog using Sublime Text 2 Ant build无法使用 Sublime Text 2 Ant 构建构建 Jekyll 博客
【发布时间】:2013-06-10 07:06:09
【问题描述】:

我最近重新格式化并重新安装了 Mountain Lion,而新版本的 Jekyll 和/或 Ruby 和/或 Ant 破坏了我的工作流程。我使用 Sublime Text 2 调用 Ant 构建脚本,该脚本(以及其他命令)执行 Jekyll 来构建博客。

这是我的 Sublime Text 项目文件:

"build_systems":
[
    {
        "name": "MyBlog",
        "cmd": ["ant"],
        "working_dir": "/Users/JordanRoher/Dropbox/Projects/BlogFolder/Web/www",

        "variants": [

            { "cmd": ["ant", "local"],
              "name": "Local"
            },

            { "cmd": ["ant", "remote"],
              "name": "Remote"
            }
        ]
    }
]

Ant 命令如下所示:

<target name="jekyll">
    <exec dir="${dir.source}" executable="bash">
        <env key="PATH" path="/usr/local/opt/ruby/bin"/>
        <env key="LC_ALL" value="en_US.UTF-8"/>
        <env key="LANG" value="en_US.UTF-8"/>
        <arg value="-c"/>
        <arg value="jekyll build"/>
    </exec>
</target>

去年可以工作,但现在它产生了这个输出:

jekyll:
    [exec] bash: jekyll: command not found
    [exec] Result: 127

此时整个构建脚本会脱轨。

需要注意的是,如果我从项目文件夹中运行 ant 命令,ant 和这个 taget 可以正常工作。只有 Sublime Text 会导致问题。

我也尝试过不同风格的 Ant 命令,如下所示:

<target name="jekyll">
    <exec dir="${dir.source}" executable="jekyll">
        <arg value="build"/>
    </exec>
</target>

但这会产生另一种错误:

Execute failed: java.io.IOException: Cannot run program "jekyll": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:470)

关于我的系统:

$ echo $PATH
/Users/JordanRoher/.rvm/gems/ruby-1.9.3-p429/bin:/Users/JordanRoher/.rvm/gems/ruby-1.9.3-p429@global/bin:/Users/JordanRoher/.rvm/rubies/ruby-1.9.3-p429/bin:/Users/JordanRoher/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

我应该将 PATH 变量添加到 Sublime Text 构建脚本吗?如果有,有哪些?

【问题讨论】:

标签: ruby ant sublimetext2 jekyll


【解决方案1】:

解决了!感谢 Martin Clayton 为我指明了正确的方向。 Sublime Text 2 确实缺少 .bash_profile 或任何地方的路径信息。

解决方案是通过进入终端并输入来获取我的路径

echo $PATH

复制这个并将其放入我的 .sublime-project 文件中的“路径”条目中

"name": "MyBlog",
"cmd": ["ant"],
"working_dir": "/Users/JordanRoher/Dropbox/Projects/BlogFolder/Web/www",
"path": "/Users/JordanRoher/.rvm/gems/ruby-1.9.3-p429/bin:/Users/JordanRoher/.rvm/gems/ruby-1.9.3-p429@global/bin:/Users/JordanRoher/.rvm/rubies/ruby-1.9.3-p429/bin:/Users/JordanRoher/.rvm/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",

我也在使用 Jekyll 目标的简短版本,如下所示:

<target name="jekyll">
    <exec dir="${dir.source}" executable="bash">
        <arg value="-c"/>
        <arg value="jekyll build"/>
    </exec>
</target>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多