Ruby 在eclipse中,使用ANT任务执行Sass。为什么我要设置';可执行文件';至';sass.bat';而不是';sass';?
我有一个ANT任务来在eclipse项目中执行Sass:Ruby 在eclipse中,使用ANT任务执行Sass。为什么我要设置';可执行文件';至';sass.bat';而不是';sass';?,ruby,eclipse,batch-file,ant,sass,Ruby,Eclipse,Batch File,Ant,Sass,我有一个ANT任务来在eclipse项目中执行Sass: <project basedir="." default="sass"> <target name="sass"> <apply dest="www/styles" executable="sass"> <srcfile/> <targetfile/> <fileset dir=
<project basedir="." default="sass">
<target name="sass">
<apply dest="www/styles" executable="sass">
<srcfile/>
<targetfile/>
<fileset dir="styles" includes="*.scss"/>
<mapper from="*.scss" to="*.css" type="glob"/>
</apply>
</target>
</project>
sass和sass.bat都可以从命令行调用,以便Ruby/bin
文件夹位于系统PATH
变量中
我不想为不同的操作系统保存此文件的两个版本
我该怎么解决这个问题呢?[不是答案,但太大了,无法评论] Windows shell了解如何展开pathext。Ant不解释-它只尝试.exe,而不是其他 任务将委托给Runtime.exec,而Runtime.exec又会 调用::CreateProcess。是后一个Win32函数定义了 调用的确切语义。特别是如果你不把 可执行文件的文件扩展名,只查找“.EXE”文件, 不是.COM“、.CMD”或环境中列出的其他文件类型 变量PATHEXT。仅由shell使用 请注意,.bat文件通常不能直接执行。一个 通常需要使用 /c开关 一个常见的问题是路径上没有可执行文件。以防收到错误消息 无法运行程序“…”:CreateProcess错误=2。系统找不到 指定的路径。请查看您的PATH变量。只需键入 命令直接在命令行上执行,如果Windows找到它,Ant 我也应该这样做。(否则,请向用户邮件列表寻求帮助。)如果 Windows无法执行该程序,请添加该程序的目录 设置路径(设置路径=%PATH%;dirOfProgram)或指定绝对值 构建文件中可执行文件属性中的路径
我通过添加条件变量
exec\u file
解决了这个问题,对于Windows系列操作系统,它的值为sass.bat
,对于其他系统,它的值为sass
<project basedir="." default="sass">
<condition property="exec_file" value="sass.bat" else="sass" >
<os family="windows" />
</condition>
<target name="sass">
<apply dest="www/styles" executable="${exec_file}">
<srcfile/>
<targetfile/>
<fileset dir="styles" includes="*.scss"/>
<mapper from="*.scss" to="*.css" type="glob"/>
</apply>
</target>
</project>
我忘了评论您的“非答案”引导我找到了答案。非常感谢。虽然这解决了您的问题,但并没有回答您的问题。
<project basedir="." default="sass">
<condition property="exec_file" value="sass.bat" else="sass" >
<os family="windows" />
</condition>
<target name="sass">
<apply dest="www/styles" executable="${exec_file}">
<srcfile/>
<targetfile/>
<fileset dir="styles" includes="*.scss"/>
<mapper from="*.scss" to="*.css" type="glob"/>
</apply>
</target>
</project>