2013-02-27 14 views
7

Attualmente sto lavorando a un progetto, che rende intenso l'uso della generazione di codice per vari scopi. Un generatore genera script SQL da entità jpa. Un altro genera DTO da pojos, un altro genera il meta modello JPA2.0, jet un altro genera alcuni file xml e di schema basati su classi Java ... ogni generatore funziona in modo completamente diverso ha bisogno di essere configurato in modo diverso.Esiste un generico generatore di codici Maven?

La mia domanda ora è ... c'è qualche esperto di generatore di codice generico plug-là fuori con i seguenti attributi: - crea un modello POJO di una classe Java (Nomi, Proprietà, annotazione, metodi ...) - Utilizza i modelli per definire l'output che utilizza il modello pojo per generare qualsiasi output. - Mi consente di specificare più modelli per una classe - Consente di generare codice e risorse - Consente di generare una classe base per target/generate-sources e un'implementazione fittizia su src/main/java che estende semplicemente la base class (Se la classe dummy in src/main/java esiste, non succede nulla, se non genera una classe fittizia.Questo codice è archiviato nell'SMM e consente di estendere manualmente le classi generate)

I sto usando il plugin Flexmojos GraniteDS per generare il codice del mio codice ActionScript, ma è abbastanza specializzato per quello scopo particolare.

Penso che un generatore così generico renderebbe le cose molto più semplici.

+0

Nota a margine: se sei interessato ai generatori di codice, potresti dare un'occhiata a [SpringFuse] (http://www.springfuse.com/). È solo a scopo informativo, dal momento che non è un plug-in Maven come richiesto, ma è anche molto interessante ';)' – sp00m

+0

Beh ci sono un sacco di cose interessanti là fuori ... pensa a Spring Roo e ad altri. Ma io sono più alla ricerca di un semplice strumento Maven che potrei usare ovunque mi serva la generazione suff. –

risposta

0

C'è minuteproject, che supporta una varietà di formati di input/output. Non corrisponde al 100% alle tue esigenze, ma la filosofia è la stessa: creare un singolo generatore per tutti i tipi di obiettivi.

Non penso che abbia ancora un plugin Maven, ma lo sviluppatore è molto reattivo. Sono sicuro che potresti creare una richiesta di funzionalità per questo.

+0

Beh, al momento il mio progetto è già abbastanza lontano. Quindi continuerò su quella strada ... ma grazie per le informazioni. Forse lo vedrò e lo userò come ispirazione ;-) –

0

Come detto Lukas, Minuteproject è stato progettato per queste cose:

  1. è possibile aggiungere in vari formati qualsiasi tipo testuale (XML, proprietà, Java, HTML ...) file
  2. file generato può fare riferimento l'un l'altro
  3. il linguaggio di template è velocity
  4. I modelli possono essere applicati su tabelle/viste; colonna (campo); pacchetto (gruppi di tabelle/viste); modello; applicazione
  5. il codice viene updatable (è possibile aggiungere l'estensione; area di modifica) il che significa che il codice è stato modificato è mantenuto sopra la generazione consecutiva
  6. è operativo ed è possibile modificare qualsiasi modello e aggiungi il tuo
  7. esso fasci tracce come ad esempio JPA2
  8. funziona con la convenzione, ma è possibile definire le proprie convenzioni che si applicano al vostro modello
  9. che non si limita alla struttura dei dati, si può decodificare le sue dichiarazioni (SDD - Dichiarazione di sviluppo guidato)

Attualmente funziona tramite riga di comando; un plugin Maven sarebbe un bel miglioramento

Florian

0

stringa-template-maven-plugin forse il miglior candidato per il generatore di codice "generico".È possibile definire un file di gruppo modello di modello di stringa e fornire un file java per alimentare i dati nel modello. Il plugin compilerà automaticamente ed eseguirà il tuo codice java (controller).

+0

In realtà questo non si avvicina nemmeno alla funzionalità che sto cercando. Ma ho già iniziato a lavorare su un nuovo plugin che userò. Non appena sarà finito un po 'per primo, lo aprirò ad esso. –

0

Prova write-it-once. Generatore di codice basato su template. Scrivi modello personalizzato utilizzando Groovy e genera file in base alle riflessioni java. È il modo più semplice per generare qualsiasi file. Puoi creare getter/settest/toString generando file AspectJ o java, SQL basato su annotazioni JPA, inserti/aggiornamenti basati su enumerazioni e così via.

Problemi correlati