Tengo un script ant para gestionar el proceso de compilación. Para WiX, necesito producir un nuevo guid cuando generemos una nueva versión del instalador. ¿Alguien tiene alguna idea de cómo hacer esto en ANT? Cualquier respuesta que use tareas integradas sería preferible. Pero si tengo que agregar otro archivo, está bien.¿Hay alguna forma de generar un guid en ANT?
Respuesta
que haría uso de un scriptdef
task para definir tareas Javascript simple que envuelve la clase Java UUID, algo como esto:
<scriptdef name="generateguid" language="javascript">
<attribute name="property" />
<![CDATA[
importClass(java.util.UUID);
project.setProperty(attributes.get("property"), UUID.randomUUID());
]]>
</scriptdef>
<generateguid property="guid1" />
<echo message="${guid1}" />
Resultado:
[echo] 42dada5a-3c5d-4ace-9315-3df416b31084
Si usted tiene un razonablemente al fecha de instalación Ant, esto debería funcionar fuera de la caja.
Esto es absolutamente perfecto. –
No tenía idea de que pudieras hacer esto; esto es genial. Gracias. – duma
Tenga en cuenta que si está usando ant con un JDK de Java 8, puede encontrarse con el siguiente problema con la sentencia importClass. Un simple trabajo es omitirlo y usar el nombre completo de UUID en la siguiente línea. http://stackoverflow.com/questions/22503100/java-8-javascript-engine-backwards-compatibility – Kyle
Si está utilizando (o le gustaría usar) groovy, esto funcionará muy bien.
<project default="main" basedir=".">
<taskdef name="groovy" classname="org.codehaus.groovy.ant.Groovy"
classpath="lib/groovy-all-2.1.5.jar" />
<target name="main">
<groovy>
//generate uuid and place it in ants properties map
def myguid1 = UUID.randomUUID()
properties['guid1'] = myguid1
println "uuid " + properties['guid1']
</groovy>
<!--use the uuid from ant -->
<echo message="uuid ${guid1}" />
</target>
</project>
salida
Buildfile: C:\dev\anttest\build.xml
main:
[groovy] uuid d9b4a35e-4a75-454c-9f15-16b4b83bc6d0
[echo] uuid d9b4a35e-4a75-454c-9f15-16b4b83bc6d0
BUILD SUCCESSFUL
Usando 2.1.5 maravilloso y la hormiga 1,8
Si copia groovy-all-x.x.x.jar en el directorio ant lib, puede eliminar el classpath en el maravilloso taskdef. Probado con groovy-all-2.4.6.jar y horm 1.9.4 –
- 1. ¿Hay alguna forma de generar el archivo ant local.properties sin sobreescribir build.xml?
- 2. ¿Hay alguna forma de distinguir un GUID de solo un número aleatorio?
- 3. ¿Cómo puedo generar un GUID en Vim?
- 4. ¿Cómo generar un GUID en VBScript?
- 5. ¿Hay alguna forma de generar código repetitivo para pilas RESTful?
- 6. ¿Hay alguna forma de generar programáticamente bytecode de Python?
- 7. ¿Hay alguna herramienta que detecte GUID duplicados?
- 8. ¿Hay alguna forma de generar código/clases WMI?
- 9. ¿Hay alguna diferencia entre un GUID y un UUID?
- 10. ¿Cómo generar un GUID en Oracle?
- 11. ¿Cómo generar un nuevo GUID en Inno Setup?
- 12. ¿Hay alguna forma de generar una imagen en miniatura de un archivo DOCX?
- 13. ¿Hay alguna forma de generar un archivo zfproject.xml a partir de un proyecto/aplicación Zend existente?
- 14. ¿Alguna forma de generar el archivo ant build.xml automáticamente desde Eclipse?
- 15. ¿Hay alguna forma de multirreproducir un SqlDataReader?
- 16. ¿Hay alguna forma de ejecutar Checkstyle solo en archivos .java SIN ANT?
- 17. ¿Hay alguna forma de memorizar un valor en Haskell?
- 18. ¿Hay alguna forma de generar un archivo CSV de localización de tornado como django makemessage?
- 19. ¿Hay alguna forma de generar automáticamente ObjectId cuando se renueva un modelo de mangosta?
- 20. ¿Hay alguna forma directa de generar pdf desde un archivo de marcado por python?
- 21. ¿Tengo alguna forma de verificar la existencia de un directorio en Ant (no en un archivo)?
- 22. ¿Hay alguna forma de currying en C?
- 23. ¿Hay alguna forma de sobrecargar + = en python?
- 24. ¿Hay alguna forma de generar filas "falsas" en el conjunto de resultados de MySQL?
- 25. ¿Hay alguna manera de generar métricas para un proyecto github?
- 26. ¿Hay alguna forma de insertar un espacio en modo normal?
- 27. ¿Hay alguna forma de crear múltiples activadores en un script?
- 28. En Perl, ¿hay alguna forma de atar un alijo?
- 29. ¿Hay alguna forma de bloquear un proceso en una CPU?
- 30. ¿Hay alguna forma de anclar un ancla en css?
a continuación La respuesta va a funcionar, pero se menciona que está utilizando Wix. De acuerdo con el libro que estoy leyendo "WIX: una guía del desarrollador de Windows Installer XML" puede definir id como * y Wix generará un nuevo Guid para usted. Así que puede hacer