Domanda

Nel mio file di build Ant, sto usando una proprietà crittografata che sto leggendo un file di testo. Ho bisogno di decifrare questo in una sorta di target bootstrap durante il mio processo di compilazione. Come posso fare questo?

A titolo di esempio, ecco i contenuti dei file.

myFile.txt :

ENCRYPTED=encryptedtext

build.xml :

<project name="myProject" default="all">
<property file="myFile.txt">

<!--Specify bootstrap target here to perform the decryption task-->

<target name="myTarget">
<!--Use the decrypted property here-->

ottengo che un modo per farlo è quello di impostare una destinazione per eseguire la decrittografia e aggiungerlo come depends in tutti i necessari obiettivi. Io non voglio farlo. Mi interessa alternative che rendono il processo più pulito possibile. Questo significa anche non ho soluzioni già considerate che vanno " Perché non si esegue l'decrittazione altrove e leggere fuori da lì? " ed io non sono interessato a loro.

Grazie.

È stato utile?

Soluzione

A mio parere, in contrasto con l'obiettivo dichiarato, penso che il modo più pulito per impostare le vostre esigenze è di utilizzare la struttura depends che fornisce formica. È stato sviluppato proprio per questo scopo.

Se si vuole garantire che questo decrittazione viene eseguito ogni volta che si esegue il processo di formica, e si vuole ancora resistere alla tentazione di utilizzare lo strumento depends, si ha la possibilità di mettere il vostro processo di decodifica nel vostro ant.bat, prima della chiamata a formica corretta, o avvolgere l'ant.bat nel proprio decryptAndCallAnt.bat.

Altri suggerimenti

Se implementare il proprio compito di eseguire la decrittografia, si dovrebbe essere in grado di fare qualcosa di simile:

<decrypt file="myFile.txt" refid="decrypted.refid"/>
<property refid="decrypted.refid"/>

Si implementa il proprio compito chiamato decrypt, che legge myFile.txt e definisce una risorsa con la decrypted.refid ref-id. Il compito property può leggere oggetti di qualsiasi tipo di risorsa utilizzando l'attributo "ref-id". Dovrete fare un po 'scavare nel manuale Ant al fine di capire il dettagli su come definito il proprio compito e come definire una risorsa che contiene il contenuto del file cifrati, ma dovrebbe essere fattibile.

Con le versioni più recenti di Ant (dal 1,6 credo) le attività non hanno bisogno di contenuto in un bersaglio. Se vuoi sempre alcuni compiti da eseguire proprio non li avvolgere in un bersaglio.

scroll top