- Learn
- Guida Nant
- Target e dipendenze
Target e dipendenze
Il secondo miglioramento è nell’uso del task <target> di importanza fondamentale in Nant. Un target infatti non è altro che un gruppo di task da eseguire sequenzialmente, in questo modo si possono raggruppare azioni logicamente correlate.
<target name="build.setup"> <mkdir dir="${path.build}"/> </target>
Il target precedente ad esempio crea la directory in cui compilare il progetto, ma si possono costruire task ben più interessanti.
<target name="project.setup"> <fileset id="project.sourcefile" > <include name="${path.src}/**/*.cs" /> <exclude name="${path.src}/obj/**/*.cs" /> <exclude name="${path.src}/bin/**/*.cs" /> </fileset> <resourcefileset id="project.resourcefile" dynamicprefix="true" > <include name="${path.src}/**/*.resx" /> <exclude name="${path.src}/obj/**/*.resx" /> <exclude name="${path.src}/bin/**/*.resx" /> </resourcefileset> </target>
Il target project.setup
esegue una serie di operazioni preliminari alla compilazione, in questo caso vengono creati dei <fileset>: insiemi di file che possono poi essere usati in punti successivi dello script.
Grazie alle opzioni <include> ed <exclude> è possibile utilizzare wildcard per selezionare gruppi di file, la sintassi prevede anche il doppio asterisco (**
) che indica un qualsiasi numero di sottodirectory.
Il fileset project.sourcefile raggruppa quindi tutti i file con estensione cs
che si trovano all’interno del progetto, ma al di fuori delle cartelle obj
e bin
che non fanno parte del progetto stesso.
Per i file di risorse si utilizza invece un resourcefileset la cui unica differenza è supportare attributi tipici delle risorse; come il dynamicprefix utilizzato per dare alle risorse il prefisso corretto con il nome del progetto.
Per i file di risorse si utilizza invece un resourcefileset
la cui unica differenza è supportare attributi tipici delle risorse; come il dynamicprefix
utilizzato per dare alle risorse il prefisso corretto con il nome del progetto.
Il target di compilazione è ora molto più interessante.
<target name="compile-winform" depends="build.setup, project.setup"> <csc target="winexe" debug="Enable" optimize="false" warnaserror="false" output="${path.build}/${project.name}.exe" doc="${path.build}/${project.name}.xml" rebuild="true"> <resources refid="project.resourcefile" /> <sources refid="project.sourcefile" /> </csc> </target>
L’aspetto fondamentale da sottolineare è l’attributo depends che indica a Nant una dipendenza. Quando Nant arriva ad eseguire questo target, esegue in ordine tutti i target da cui dipende, se non sono già stati precedentemente eseguiti. Per script molto complessi è possibile che le catene di dipendenze siano assai complicate, ma in ogni caso nessun target viene eseguito più di una volta.
Il secondo dato importante è che ora, grazie all’uso dei <fileset>
, il target <csc>
non contiene più nessun riferimento a proprietà specifiche del progetto e può quindi essere riutilizzato. Sempre grazie ai fileset, non è necessario inoltre modificare alcunché quando si aggiungono file sorgenti al progetto stesso.
Se vuoi aggiornamenti su Target e dipendenze inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Creare forme personalizzate in Photoshop
In questo video è mostrato come creare nuove forme personalizzate in Photoshop, in modo da aggiungere nuove scelte al catalogo […]