I generatori creano o modificano risorse dello spazio di lavoro, servendosi solitamente di altre risorse. Si tratta di potenti meccanismi che consentono di rafforzare i vincoli di alcuni domini. Ad esempio, un generatore Java converte file di origine Java (file .Java) in file di classe eseguibili (file .class), un generatore di collegamenti Web aggiorna i collegamenti a file i cui nomi o le cui posizioni vengono modificate, ecc. Non appena viene creata o modificata una risorsa, viene eseguito un generatore che consente di mantenere i vincoli. Non è necessario che la trasformazione sia univoca. Ad esempio, un singolo file .java può generare diversi file .class.
Esistono due diversi modi di operare rispetto alla generazione: in generazione automatica o con generazione manuale iniziata dall'utente.
If you don't need fine-grained control over when builds occur,
you can turn on auto-building. With auto-building on,
builds occur after every set of resource changes (e.g., saving a file, importing
a ZIP, ...). Auto-building is efficient because the amount of work done is
proportional to the amount of change done. I
vantaggi della generazione automatica consistono nel disporre sempre
di risorse derivate (ad esempio, file .class Java) aggiornate.
La generazione automatica può essere attivata o disattivata tramite l'opzione Genera automaticamente nella pagina delle preferenze
Generale > Spazio di lavoro.
If you need more control over when builds occur, you can turn off auto-building and invoke builds manually. This is sometimes desirable in cases where, for example, you know building is of no value until you finish a large set of changes. In questo caso, non è vantaggioso eseguire la funzione di generazione automatica. Builds can be invoked manually in numerous ways, for example, by right-clicking the project and selecting Build Project.
Lo svantaggio della generazione manuale consiste nel fatto che i problemi generati per indicare gli errori di generazione diventano rapidamente obsolete. Inoltre, è importante ricordare di eseguire la generazione manuale prima dell'output di generazione (ad esempio, prima di eseguire il programma Java).
Le generazioni funzionano in modo incrementale in base a un precedente stato di generazione. Esse applicano le trasformazioni dei generatori configurati solo sulle risorse che hanno subito modifiche dopo l'elaborazione del precedente stato (ossia dopo l'ultima generazione). La generazione automatica utilizza sempre la generazione incrementale per ottenere una maggiore efficienza.
La cancellazione di una generazione (Progetto > Cancella) elimina tutti gli stati di generazione esistenti. La generazione che segue una cancellazione trasforma tutte le risorse in base a regole di dominio dei generatori configurati.
Depending on your needs, build and clean can be done over a specific set of projects or the workspace as a whole. Non è possibile generare specifici file e cartelle separatamente.