Tengo varias ubicaciones de archivos/ejecutables que probablemente sean diferentes dependiendo de la computadora en la que las estoy ejecutando, y me gustaría abstraerlas de alguna manera a través de las propiedades de las hormigas. ¿Cuál es la mejor manera de hacer esto? ¿Hay un script de instalación de ant en todo el sistema que se llame? ¿O puedo hacer un script así?hormiga: ¿la mejor manera de configurar las propiedades dependientes del sistema?
Respuesta
Configura un archivo de construcción ant llamado properties.xml, en el que debe definir las propiedades que desea personalizar.
aquí es repetitivo properties.xml estoy usando para mis proyectos (He adaptado desde uno de los libros sobre Ant):
<?xml version="1.0" encoding="UTF-8"?>
<project
name="workspace-properties"
>
<dirname
property="workspace-properties.basedir"
file="${ant.file.workspace-properties}"
/>
<!--
==========================================================
Load Environment Variables
==========================================================
-->
<!-- #Load environment variables -->
<property environment="env" />
<!-- this is here to deal with the fact that an IntelliJ IDEA build
has no ant home
-->
<property
name="ant.home"
value="${env.ANT_HOME}"
/>
<!-- get Unix hostname, and set to Windows comparable name -->
<!-- #Trick to get host name x-platform -->
<property
name="env.COMPUTERNAME"
value="${env.HOSTNAME}"
/>
<!--
==========================================================
Load property files
Note: the ordering is VERY important.
==========================================================
-->
<!-- #Allow even users property file to relocate -->
<property
name="user.properties.file"
location="${user.home}/.build.properties"
/>
<!-- Load the application specific settings -->
<!-- #Project specific props -->
<property file="build.properties" />
<!--
==========================================================
Define your custom properties here.
You can overwrite them through build.properties and
${user.home}/.build.properties
==========================================================
-->
<property name="myexec1" location="/usr/bin/myexec1"/>
<property name="myexec2" location="/usr/bin/myexec2"/>
</project>
Lo importante aquí es para llegar a la mayor cantidad predeterminada útil los valores de las propiedades como sea posible, entonces ni siquiera se pueden encontrar archivos personalizados build.properties
.
Entonces solo <import>
este archivo en el build.xml de su proyecto.
<project
name="my-project"
>
<!-- this is done, so you may import my-project somewhere else -->
<dirname
property="my-project.basedir"
file="${ant.file.my-project}"
/>
<import file="${my-project.basedir}/relative/path/to/properties.xml"/>
<target name="using.myexec1">
<echo message="myexec1=${myexec1}"/>
</target>
</project>
Si desea un valor personalizado para myexec1 en my-project
, simplemente soltar un archivo build.properties encargo plana en el mismo directorio donde se encuentra build.xml.
El archivo build.properties puede tener este aspecto:
myexec1=c:/custom/path/to/myexec1.exe
yo uso el más o menos estándar build.properties
y build-local.properties
archivos.
El primero contiene valores predeterminados, comunes a todos los entornos, el segundo solo las excepciones. El primero se marca en subversión mientras que el otro no.
EDITAR: excelente idea de copiar/pegar de Akr
Además es posible que tenga un archivo de propiedades predeterminadas para cada uno del sistema operativo o de otro tipo que puedan desplegar su sistema de construcción en. Estos archivos también se pueden registrar en su sistema de control de versiones.
El script Ant incluiría entonces todos los archivos de la siguiente manera (recuerde: en Ant la primera definición gana):
<property file="build-local.properties"/>
<property file="build.properties"/>
<property file="build-${os.name}.properties">
¿por qué construir-locales ¿primero? –
@KalpeshSoni Porque con esto puede anular todas las propiedades en el archivo local (ya que es el primero que se carga). Lo que creo que está mal es el archivo dependiente del sistema operativo, ya que debe anular el archivo predeterminado, por lo que debe aparecer en segundo lugar. – PhoneixS
Además de la solución de Vladimir es posible que tenga un archivo de propiedades predeterminadas para cada uno del sistema operativo u otro puede implementar su sistema de compilación. Use $ {os.name} (y otras propiedades del sistema Java) para configurar una ruta. Por ejemplo
<property file="build-${os.name}.properties">
Estos archivos también se pueden mantener y registrar en su sistema de control de versiones.
+1 buena idea. He tenido algunos problemas con 'file: ///' y 'file: //' en diferentes sistemas y su propuesta manejaría muy bien este caso. – Vladimir
- 1. ¿La mejor manera de organizar proyectos dependientes?
- 2. Mejor práctica para usar las propiedades del sistema Java
- 3. Encuadernación a propiedades dependientes del tiempo
- 4. La mejor manera de ir sobre las propiedades de archivo
- 5. Establecer las propiedades del sistema para la aplicación Android
- 6. configurar hormiga para scala
- 7. propiedades dependientes de actualización usando el MVVM
- 8. cómo establecer las propiedades del sistema en C#
- 9. La mejor manera de configurar un programa modular en C#
- 10. MATLAB - propiedades dependientes y cálculo
- 11. Establecer las propiedades del sistema con "sbt run"
- 12. Tomcat 7 - ¿Dónde configuro 'propiedades del sistema'?
- 13. La mejor manera de configurar NSViewController inicializado con initWithNibName: paquete :?
- 14. La mejor manera de programar el sistema de Logros
- 15. La mejor/manera fácil de configurar un arranque rápido Linux
- 16. ¿Cuál es la mejor manera de comparar varias propiedades javabean?
- 17. Configurar la hora del sistema del teléfono ROOTED
- 18. Práctica recomendada para configurar las propiedades de Log4j Ruta
- 19. La mejor manera de hacer un sistema "hashtag"
- 20. La mejor manera de obtener propiedades secundarias con GetProperty
- 21. Ant, jvmarg, propiedades del sistema y comillas
- 22. WAS7 Propiedades del sistema en RAD 7.5.1
- 23. ¿Cuál es la mejor manera de definir y acceder a las propiedades seleccionadas en C#?
- 24. ¿Cómo puedo especificar las propiedades del sistema en la configuración de Tomcat al inicio?
- 25. ¿Cuál es la mejor manera de configurar una descripción del servicio de Windows en .net
- 26. La mejor manera de almacenar las configuraciones fuera de web.config
- 27. La mejor manera de configurar programáticamente adaptadores de red en .NET
- 28. ¿La mejor manera de crear un sistema TOKEN para autenticar las llamadas al servicio web?
- 29. ¿Cuál es la mejor manera para que un programa Java controle la salud del sistema?
- 30. La integración de las bibliotecas del sistema nativos con SBT
Aquí es una solución de trabajo para su 'nombre de host problema plataforma de x, basta con utilizar: funcionará en Linux y Windows –
Rebse