Ho uno script ant per gestire il processo di compilazione. Per WiX ho bisogno di produrre una nuova guida quando produciamo una nuova versione dell'installer. Qualcuno ha qualche idea su come farlo in ANT? Qualunque risposta che usi compiti incorporati sarebbe preferibile. Ma se devo aggiungere un altro file, va bene.C'è un modo per generare un guid in ANT?
risposta
userei un scriptdef
task per definire semplice compito javascript che avvolge la classe Java UUID, qualcosa di simile:
<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}" />
Risultato:
[echo] 42dada5a-3c5d-4ace-9315-3df416b31084
Se si dispone di un ragionevolmente up-to -data installazione Ant, questo dovrebbe funzionare fuori dalla scatola.
Questo è assolutamente perfetto. –
Non avevo idea di poterlo fare; questo è fantastico Grazie. – duma
Si noti che se si utilizza formica con un JDK Java 8, è possibile che si verifichi il seguente problema con l'istruzione importClass. Una semplice soluzione è ometterla e utilizzare il nome completo dell'UUID nella riga successiva. http://stackoverflow.com/questions/22503100/java-8-javascript-engine-backwards-compatibility – Kyle
Se si utilizza (o si desidera utilizzare) groovy, questo funzionerà correttamente.
<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>
uscita
Buildfile: C:\dev\anttest\build.xml
main:
[groovy] uuid d9b4a35e-4a75-454c-9f15-16b4b83bc6d0
[echo] uuid d9b4a35e-4a75-454c-9f15-16b4b83bc6d0
BUILD SUCCESSFUL
Utilizzando 2.1.5 Groovy e formica 1,8
Se si copia groovy-all-x.x.x.jar nella directory ant lib, è possibile rimuovere il classpath sul taskde groovy. Testato con groovy-all-2.4.6.jar e ant 1.9.4 –
La risposta qui sotto funzionerà, ma si parla che si sta utilizzando Wix. Secondo il libro che sto leggendo "WIX: A Developer's Guide to Windows Installer XML" puoi definire id come * e Wix genererà una nuova guida per te. Quindi puoi fare solo