Domanda

Voglio costruire un "toJavaCode ()" sul mio modello che avrebbe generato il codice sorgente di Java necessario per generare quel modello (lasciamo perdere i motivi o se dovrebbe o non dovrebbe essere fatto, né i problemi di compatibilità che possono verificarsi).

Sono in perdita a come verificare questo. Sto utilizzando Maven, ma generare sorgenti non sarà davvero lavorare per me dato che il mio server deve essere per una corretta sperimentazione, alla rinfusa. Io capisco il server durante l'obiettivo "di prova", ma generare-sources è troppo presto.

D'altra parte, mentre posso utilizzare il costruito nel compilatore (dal tools.jar nel JDK) per fare questo, non so come posso imballare nel barattolo per il test (o caricare quel vaso) .

Tutte le idee?

È stato utile?

Soluzione

È possibile utilizzare il JavaCompiler API per compilare i file di origine e impostare un classloader per caricare le classi compilate nel test ( codice di esempio ). tools.jar deve essere nel classpath. Questo è il caso se si utilizza il JDK.

Se il codice generato è stabile per una determinata classe è possibile utilizzare processore annotazione per generare il codice sorgente e compilare nella stessa javac eseguito come classe annotata.

Altri suggerimenti

È possibile aggiungere attività formica al vostro Maven. Questo è un modo per qualcosa di 'out-of-classica-ordine' durante una generazione Maven. Come l'aggiunta di un compito formica javac al gol esperti di test o giù di lì.

(mi dispiace, io sono confuso come il tuo commentor matt b - ma i compiti formica incorporati sono il tuo coltellino svizzero qui.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top