2010-09-23 12 views
6

Sto usando la formica per generare il MANIFEST.MF per un .jar, e ho bisogno di aggiungere più manifest <section> blocchi in base a un elenco di file in una directory. Tuttavia, ho bisogno di automatizzare il processo per farlo in fase di costruzione poiché l'elenco cambierà tra sviluppo e distribuzione.Automatizza l'aggiunta di più "sezioni" al manifest?

Ad esempio:

<manifest file="MANIFEST.MF"> 
    <foreach files="./*"> 
    <section name="section"> 
     <attribute name="Attribute-Name" value="$file"/> 
    </section> 
    </foreach> 
</manifest> 

Ho guardato foreach da Ant-contrib ma non sembra che funzionerà in questo caso.

È possibile?

+0

Che cosa si intende per sezioni? –

+0

potresti inserire un output manifest di esempio per, diciamo, due file di input nella directory in entrata? (Mi sto chiedendo in particolare se vuoi che il nome della sezione sia lo stesso per ogni file, o qualcos'altro?) –

risposta

4

Si può fare questo con il Manifest task

<manifest file="MANIFEST.MF"> 
    <section name="section"> 
     <attribute name="Attribute-Name" value="value"/> 
    </section> 
    <section name="section/class1.class"> 
     <attribute name="Second-Attribute-Name" value="otherValue"/> 
    </section> 
</manifest> 

Sarà generare questo manifesto:

Manifest-Version: 1.0
Creato-By: Apache Ant 1.7

Nome: section
Nome-attributo: valore

Nome: sezione/class1.class
seconda Attribute-Name: otherValue

È possibile mantenere due differenti attività personalizzate per gestire i diversi casi, e chiamare quella giusta al momento giusto.


Per una gestione "automatico":

<target name="manifest-generation"> 
    <foreach param="file" target="manifest"> 
     <path> 
      <fileset dir="."> 
       <include name="**/*.class"/> 
      </fileset> 
     </path> 
    </foreach> 
</target> 

<target name="manifest"> 
    <manifest file="MANIFEST.MF" mode="update"> 
     <section name="${file}"> 
      <attribute name="Attribute-Name" value="value"/> 
     </section> 
    </manifest> 
</target> 
+0

se questo non è abbastanza flessibile, allora probabilmente hai bisogno di scrivere la tua attività personalizzata –

+0

Sì, lo so io può farlo manualmente, ma non è quello che sto chiedendo. Ti sto chiedendo come ** automatizzare ** l'aggiunta di più sezioni basate sui file nel filesystem. –

+0

Quindi cosa intendi per "automatizzare"? Che risultato vuoi? –

Problemi correlati