如何从ant build运行ruby脚本作为任务?

时间:2011-07-28 04:05:53

标签: ant

我有一个通过ant -lib lib -f test_build.xml

调用的现有ant构建

我想在现有版本完成后再添加一个<target>部分。我做了一些研究,发现ant manual for exec甚至a question在这里。经过一些阅读后,我为这个现有版本添加了新目标,但它没有用。

我尝试仅使用目标创建新的构建文件。它也不起作用。虽然ant run以消息BUILD SUCCESSFUL Total time: 0 seconds

结束

如果我从命令行运行我的ruby脚本就可以了。我试图创建一个bat文件,它会调用我的ruby脚本,结果相同。如果我从dos窗口调用bat文件就可以了。

我的ant运行构建文件看起来像

<project name="RunRubyExample">

<target name="calling ruby " >
  <exec executable="ruby.exe">
    <arg value="C:\EduTester\others\afterant.rb 1 2 tri four"/>
  </exec>
</target>

<target name="calling batach">
  <exec executable="cmd">
    <arg value="/c"/>
    <arg value="C:\EduTester\others\rubruby.bat 1 2 tri four"/>
  </exec>
</target>

</project>
  • 2010年12月20日编译的Apache Ant(TM)版本1.8.2
  • 在Windows XP上

2 个答案:

答案 0 :(得分:3)

看起来你传递了一个包含嵌入空格

的arg
<arg value="C:\EduTester\others\afterant.rb 1 2 tri four"/>

是吗?或者它应该是arg

<arg line="C:\EduTester\others\afterant.rb 1 2 tri four"/>

或多个arg值:

<arg value="C:\EduTester\others\afterant.rb"/>
<arg value="1"/>
<arg value="2"/>
<arg value="tri"/>
<arg value="four"/>

答案 1 :(得分:0)

需要指定需要运行的目标

  • <project name="RunRubyExample" default="callingruby">
  • 或调用ant构建文件时。在我们传递目标名称的地方,我们希望将其作为参数运行。 ant -lib lib callingruby

Writing a Simple Buildfile

谢谢@Steve

相关问题