ant - son - variables de entorno en aplicaciones de usuario
Cómo establecer la variable de entorno de ruta desde el script ant (7)
En hormiga, las propiedades son inmutables, por lo que la sugerencia de David arriba:
<property name="env.foo" value="bar!bar"/>
no funcionará
Pero las variables son mutables, así que esto funciona:
<variable name="env.foo" value="bar!bar"/>
Esto hace el trabajo, pero parece un truco ruin.
Entonces, para su pregunta específica, intente
<variable name="env.PATH" value="some:custom:value"/>
Cómo establecer la variable de entorno de ruta desde el script ant
Encontré que funciona cotizando el valor de la variable
<exec executable="setx">
<arg line="Path "${env.Path};c:/testPath"" />
<arg line="/m" />
</exec>
Para establecer las variables de entorno a través de Ant, intente llamar a la tarea exec y establecer los valores de línea de comando. No he intentado esto por cierto, pero debería funcionar.
Puede usar el comando setx para establecer las variables de entorno.
Para obtener ayuda con el comando setx, consulte http://ss64.com/nt/setx.html
<exec executable="setx.exe">
<arg line="Path C:/jdk1.5.0_12/bin"/>
<arg line="/m"/>
</exec>
Puede usar para expandir la ruta:
Y luego puede ejecutar por ejemplo sh
from ant
para export
la variable de entorno:
<property environment="env"/>
<exec executable="sh">
<arg value="-c"/>
<arg value="export PATH=${env.Path}:${myPath}"/>
</exec>
O ejecute su comando y configure env
con value
, de esta forma:
<property environment="env"/>
<exec executable="${your.command}">
<env key="PATH" value="${env.PATH}:${your.directory}"/>
</exec>
ya que no tengo suficiente reputación para comentar sobre la <variable ...
sugerencias mi comentario como respuesta ...: - /
En ("más nuevo") ant-contrib (paquete ANT adicional), la tarea no se llama <variable ...
sino <var ...
!
(pero de todos modos no funcionó para mí, ya que creo que la manipulación de env.*
(creada por <property environment="env" ... />
task) las propiedades / variables de Java solo son relevantes para tareas / procesos que evalúan estos Propiedades de Java que no se "sincronizan automáticamente" con las variables de entorno del sistema operativo )
¿Esto es para una tarea <exec>
?
Puede establecer variables de entorno cuando ejecuta una tarea <exec>
:
<exec executable="${my.command}">
<env key="foo" value="bar"/>
<arg line="some value"/>
</exec>
Puede usar <property environment="env"/>
para expandir la ruta:
<property environment="env"/>
<exec executable="${my.command}">
<env key="PATH" value="${env.PATH}:${my.directory}"/>
</exec>
Si esto es para alguna tarea personalizada que requiere una variable de entorno, pero no le permite establecer la variable de entorno en la tarea si no está configurada, puede intentar establecerla en:
<property environment="env"/>
<property name="env.foo" value="bar!bar"/>
Esto podría establecer una variable de entorno llamada foo
al valor de bar!bar!
. Recuerdo algo sobre esto, pero no fui capaz de hacerlo funcionar.
La otra cosa que puede hacer es hacer que un script ant ejecute otro y que el primer script ant establezca el valor del entorno. Hice esto cuando tuve que configurar ANT_OPT
.