J'ai un script ant pour gérer le processus de construction. Pour WiX, j'ai besoin de produire un nouveau guid lorsque nous produisons une nouvelle version de l'installateur. Quelqu'un at-il une idée de comment le faire dans ANT? Toute réponse qui utilise des tâches intégrées serait préférable. Mais si je dois ajouter un autre fichier, c'est bien.Existe-t-il un moyen de générer un guid dans ANT?
Répondre
j'utiliser un scriptdef
task pour définir la tâche javascript simple qui enveloppe la classe Java UUID, quelque chose comme ceci:
<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}" />
Résultat:
[echo] 42dada5a-3c5d-4ace-9315-3df416b31084
Si vous avez un raisonnablement à -date Ant installer, cela devrait fonctionner hors de la boîte.
Ceci est absolument parfait. –
Je n'avais aucune idée que vous pourriez faire cela; c'est bien. Merci. – duma
Notez que si vous utilisez ant avec un JDK Java 8, vous pouvez rencontrer le problème suivant avec l'instruction importClass. Un simple travail consiste à l'omettre et à utiliser le nom complet de UUID sur la ligne suivante. http://stackoverflow.com/questions/22503100/java-8-javascript-engine-backwards-compatibility – Kyle
Si vous utilisez (ou souhaitez utiliser) groovy cela fonctionnera 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>
Sortie
Buildfile: C:\dev\anttest\build.xml
main:
[groovy] uuid d9b4a35e-4a75-454c-9f15-16b4b83bc6d0
[echo] uuid d9b4a35e-4a75-454c-9f15-16b4b83bc6d0
BUILD SUCCESSFUL
En utilisant groovy 2.1.5 et fourmi 1.8
Si vous copiez groovy-all-x.x.x.jar dans le répertoire ant lib, vous pouvez supprimer le classpath sur la tâche groovydef. Testé avec groovy-all-2.4.6.jar et ant 1.9.4 –
- 1. Un moyen de générer un GUID comme suit?
- 2. Comment générer un GUID dans Oracle?
- 3. Générer un GUID dans AIR 3?
- 4. Comment générer un GUID dans VBScript?
- 5. Comment générer un GUID sous Windows Mobile?
- 6. Générer un GUID désiré en C#
- 7. Comment générer un nouveau GUID dans Inno Setup?
- 8. Existe-t-il un meilleur moyen de générer guid dans gcc
- 9. générer un fichier android ant de eclipse
- 10. Comment générer automatiquement un GUID pour une table de jointure?
- 11. est-il un moyen de définir ant -verbose dans build.xml?
- 12. Comment générer un nouveau guid pour chaque instance installée?
- 13. Comment générer des GUID séquentiels?
- 14. Comment générer un nouveau GUID à partir d'un GUID donné en C# ou T-SQL?
- 15. Existe-t-il un moyen de faire défiler les fichiers dans ant sans utiliser ant-contrib?
- 16. Un moyen de générer automatiquement un diagramme UML?
- 17. Comment créer un GUID?
- 18. Comment créer un guid dans MFC
- 19. Comment faire pour hacher un GUID et un horodatage 64 bits dans un autre GUID
- 20. Bon moyen de générer des GUID sur le moteur de l'application?
- 21. Générer GUID pour la clé primaire automatiquement Dans EF5
- 22. passant un emplacement de build.xml dans ant
- 23. Créer un GUID aléatoire en C# dans un intervalle spécifié
- 24. Existe-t-il un moyen de distinguer un GUID d'un nombre aléatoire?
- 25. Ant n'a pas pu générer
- 26. Représente un Guid comme un ensemble d'entiers
- 27. Insérer un GUID à chaque ligne existante
- 28. Comment créer un Guid avec un script Infopath?
- 29. comment convertir un flux d'image en GUID
- 30. Générer Guid pour chaque ligne dans une colonne
La réponse ci-dessous fonctionnera, mais vous mentionnez que vous utilisez Wix. Selon le livre que je lis "WIX: Guide du développeur de Windows Installer XML", vous pouvez définir id comme * et Wix va générer un nouveau guide pour vous. Donc, vous pouvez simplement faire