我有一只蚂蚁脚本,执行一个副作用 "复制"的任务.这是为Windows编写,并有一个硬编C:\path为'todir'的论点。我看到了'执行'的任务具有操作系统的参数,是否有一个类似方法分支的副本基础的操作系统?

有帮助吗?

解决方案

我将建议把该路径中的财产,然后设定的财产有条件地根据当前的操作系统。

<condition property="foo.path" value="C:\Foo\Dir">
   <os family="windows"/>
</condition>
<condition property="foo.path" value="/home/foo/dir">
   <os family="unix"/>
</condition>

<fail unless="foo.path">No foo.path set for this OS!</fail>

作为一个方面的利益,一旦它是在一个酒店你可以替代它没有编辑的蚂蚁脚本。

其他提示

先前发布的建议的操作系统的具体变量会的工作,但很多时候你可以简单地省略"C:"前缀和使用斜杠(Unix style)文件的路径,并将工作在这两个窗口和Unix系统。

所以,如果你想要复制的文件"C:/tmp"在窗户和"/tmp"on Unix,你可以使用这样的:

<copy todir="/tmp" overwrite="true" >
         <fileset dir="${lib.dir}">
             <include name="*.jar" />
         </fileset>
</copy>

如果你不想要的/需要设置一个有条件的道路基础的操作系统,它可以被简化为:

    <condition property="root.drive" value="C:/" else="/">
        <os family="windows" />
    </condition>
    <copy todir="${root.drive}tmp" overwrite="true" >
             <fileset dir="${lib.dir}">
                 <include name="*.jar" />
             </fileset>
    </copy>

你可以使用的条件的任务转到不同的复制任务...从蚂蚁手册:

<condition property="isMacOsButNotMacOsX">
<and>
  <os family="mac"/>

  <not>
    <os family="unix"/>

  </not>
</and>

声明一个变量,是根文件夹你的操作。前缀的文件夹中的那个变量,包括复制任务。

设置可变的基础的操作系统使用一个有条件的,或通过它作为一个参数的蚂蚁脚本。

你不能用一个变量,并将其分配根据的类型?你可以把它放在一个 build.properties 文件。或者你可以把它分配使用 条件.

蚂蚁-神奇的 <osfamily /> 任务。这将会使家庭的操作系统的一个酒店(指定名称)。这可能是一些利益。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top