una tipos sistema sirve saber que pasos particiones particionar particion para operativo duro disco como comando ant

ant - sistema - tipos de particiones de disco duro



Usando hormiga para detectar os y establecer propiedad (8)

Mueva su condición fuera del <target /> , ya que su objetivo probablemente no se invoque.

<condition property="isWindows"> <os family="windows" /> </condition> <condition property="isLinux"> <os family="unix" /> </condition>

Quiero establecer una propiedad en una tarea de hormiga de manera diferente por tipo de sistema operativo.

La propiedad es un directorio, en Windows quiero que sea "c: / flag" en unix / linux "/ opt / flag".

Mi secuencia de comandos actual solo funciona cuando la ejecuto con el objetivo predeterminado, pero ¿por qué?

<target name="checksw_path" depends="if_windows, if_unix"/> <target name="checkos"> <condition property="isWindows"> <os family="windows" /> </condition> <condition property="isLinux"> <os family="unix" /> </condition> </target> <target name="if_windows" depends="checkos" if="isWindows"> <property name="sw.root" value="c:/flag" /> <echo message="${sw.root}"/> </target> <target name="if_unix" depends="checkos" if="isLinux"> <property name="sw.root" value="/opt/flag" /> <echo message="${sw.root}"/> </target>

En todos mis objetivos ant, he agregado un "depends = checksw_path".

Si ejecuto el objetivo predeterminado en Windows, tengo correctamente "c: / flag" pero si ejecuto un destino no predeterminado, tengo que la depuración va en if_windows, pero la instrucción "" no establece la propiedad que permanece / opt / flag. Estoy usando hormiga 1.7.1.


Resolví ejecutar la tarea ant con el valor de sw.root usando -Dsw.root = c: / flag (para windows) o -Dsw.root = / opt / superwaba (para linux).

Gracias de todos modos


Intente configurar <sysproperty key="foobar" value="fowl"/> en su tarea java. Luego, en su aplicación, use System.getProperty ("foobar");


Debe establecer el valor "verdadero" en la propiedad para que la condición if funcione. Vea el código a continuación:

<target name="checkos"> <condition property="isWindows" value="true"> <os family="windows" /> </condition> <condition property="isLinux" value="true"> <os family="unix" /> </condition> </target>

HTH, Hari



Utilicé ese script y funcionó bien para mí:

<project name="dir" basedir="."> <condition property="isWindows"> <os family="windows" /> </condition> <condition property="isUnix"> <os family="unix" /> </condition> <target name="setWindowsRoot" if="isWindows"> <property name="root.dir" value="c:/tmp/" /> </target> <target name="setUnixRoot" if="isUnix"> <property name="root.dir" value="/i0/" /> </target> <target name="test" depends="setWindowsRoot, setUnixRoot"> <mkdir dir="${root.dir}" /> </target> </project>


Si desea establecer esa propiedad individual basada en el SO, también puede configurarla directamente sin la necesidad de crear tareas:

<condition property="sw.root" value="c:/flag"> <os family="windows" /> </condition> <condition property="sw.root" value="/opt/flag"> <os family="unix" /> </condition> <property name="sw.root" value="/os/unknown/"/>


Al usar Ant Contrib puede simplificar su archivo de compilación reduciendo la cantidad de elementos que necesita declarar para agregar estas condiciones.

<!--Tell Ant to define the Ant Contrib tasks from the jar--> <taskdef resource="net/sf/antcontrib/antcontrib.properties"> <classpath> <pathelement location="path/to/ant-contrib-0.6.jar"/> </classpath> </taskdef> <!--Do your OS specific stuff--> <target name="checkos"> <if> <os family="unix"/> <then> <!--Do your Unix stuff--> </then> <elseif> <os family="windows"/> <then> <!--Do your Windows stuff--> </then> </elseif> </if> </target>