无法使用Sublime Text 2 Ant构建Jekyll博客



我最近重新格式化并重新安装了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和这个标签可以正常工作。只有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构建脚本吗?如果有,是哪些?

解决!谢谢你马丁·克莱顿给我指出了正确的方向。Sublime Text 2确实缺少来自.bash_profile或其他地方的路径信息。

解决方案是通过进入终端并输入 来获得我的路径
echo $PATH

复制这段并把它放到我的。sublime-project文件

的path条目中
"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>

相关内容

  • 没有找到相关文章

最新更新