在ant脚本 - build.xml中运行UNIX命令

时间:2013-09-19 15:04:57

标签: java unix ant

如何将这个unix命令放在ant脚本中?

jar -xvf test.ear out.war | jar -x ; cd directory ; jar -xvf ../out.war

这会有用吗?

<target name="unear">
    <echo>***Un-tarring***</echo>
    <exec executable="jar" outputproperty="noOfFiles">
         <arg value="-xvf" />
         <arg value="test.ear out.war" />
         <arg value="|" />
         <arg value="jar" />
         <arg value="-x" />
         <arg value=";" />
         <arg value="cd directory" />
         <arg value=";" />
         <arg value="jar" />
         <arg value="-xvf" />
         <arg value="../out.war" />
    </exec>
</target>

3 个答案:

答案 0 :(得分:2)

战争,耳朵和罐子只是拉链文件。你可以使用unzip任务来破解它。 您需要将示例中的unix命令分解为多个任务。

答案 1 :(得分:1)

管道由shell解释,因此让shell解释它们。说:

<exec executable="sh">
  <arg value="-c"/>
  <arg value="jar -xvf test.ear out.war | jar -x ; cd directory ; jar -xvf ../out.war"/>
</exec>

答案 2 :(得分:0)

可能是你可以做这样的事情,只是为了确保你在Unix操作系统上运行unix命令。你可以通过在脚本中包装来运行任何一组unix命令:

<condition property="is.unix">
       <os family="unix"/>
</condition>

<if>
    <istrue value="${is.unix}"/>
<then>

<chmod file="${script.locater.path}/your_script.ksh" perm="755"/>
<exec executable="${script.locater.path}/your_script.ksh"
  dir="${from.dir.you.want.to.execute}">
</exec>