L'output del compilatore java incrementale di Eclipse è utilizzato nella produzione? O è semplicemente per supportare le funzionalità di Eclipse?

6

Sono nuovo di Java ed Eclipse. Una delle mie scoperte più recenti è stata il modo in cui Eclipse viene fornito con un proprio compilatore java (ejc) per eseguire build incrementali. Eclipse sembra di default l'output di file di classe creati in modo incrementale nella cartella projRoot / bin.

Ho notato anche che molti progetti sono dotati di file ant per costruire il progetto che usa il compilatore java incorporato nel sistema per fare le build di produzione.

Provenendo da un mondo Windows / Visual Studio in cui Visual Studio sta invocando il compilatore per produzione e debug, sono abituato all'IDE che ha una relazione più intima con il compilatore della riga di comando. Sono abituato al progetto essere il file make. Quindi il mio modello mentale è un po 'fuori.

Qual è il prodotto prodotto da Eclipse nella produzione? O è in genere utilizzato solo per supportare le funzionalità di Eclipse (cioè il suo intellisense / edificio incrementale / etc)? E 'tipico che per la versione finale di "rilascio" di un progetto, quel formica, un salvadanaio o un altro strumento vengano utilizzati per eseguire la compilazione completa dalla riga di comando?

Principalmente sto cercando la convenzione generale nella comunità di Eclipse / Java. Mi rendo conto che potrebbero esserci alcuni outlier che usano ECJ in produzione, ma questo è generalmente disapprovato? O è questa pratica normale / accettata?

    
posta Doug T. 26.11.2012 - 18:37
fonte

4 risposte

5

Sarebbe normale avere un processo di compilazione separato (ad es. con qualcosa come Maven ) che fa non utilizzare il compilatore Eclipse che è responsabile della produzione degli artefatti deployabili finali. Ad esempio, in tutti i miei progetti Java Eclipse utilizzo:

  • Il compilatore Eclipse integrato per test rapidi (JUnit), debug e esecuzione locale
  • Maven per realizzare le build "reali" (suite di test complete, creazione di artefatti di implementazione, ecc.). Qui Maven sta usando la versione del compilatore Java che viene fornito con il mio JDK locale.
  • TravisCI (tramite GitHub) per eseguire test di integrazione continui (che utilizza anche Maven, ma su macchine remote)

In teoria potresti usare i file di classe Eclipse compilati in produzione, se vuoi, niente ti impedisce di confezionarli da soli e di distribuirli. Ma questa sarebbe una cosa strana da fare, dal momento che richiederebbe un po 'di sforzo e perderebbe i vantaggi di avere una corretta configurazione di build.

P.S. se vuoi fare del bene a questa roba, ti consiglio vivamente di investire nell'apprendimento di Maven. È una curva di apprendimento ripida, ma davvero ne vale la pena a lungo termine.

    
risposta data 26.11.2012 - 20:00
fonte
4

Non ho mai visto l'output del compilatore di Eclipse utilizzato per la produzione in qualsiasi progetto professionale o open source. probabilmente funzionerebbe bene, ma non è quello che fai.

Parte del motivo è probabilmente il fatto che eclipse non è così dominante come Visual Studio, un altro che crea strumenti come Ant e Maven sono sempre esistiti separati dall'IDE, e c'è una strong aspettativa di usarli per l'automazione della build.

    
risposta data 26.11.2012 - 21:57
fonte
3

L'output del compilatore Java di Eclipse è in effetti molto utilizzato nelle applicazioni di produzione. La piattaforma Eclipse stessa è costruita con il compilatore Eclipse, come lo sono migliaia di altri prodotti (basati su Eclipse o altro). Il compilatore java di Eclipse è anche molto utilizzato nella comunità Linux e dai server Web per la compilazione di JSP in applicazioni commerciali. Maven ha un plugin per il compilatore di maven che ti consente di eseguire le build da riga di comando usando il compilatore Eclipse. Ciò è importante non solo per garantire un output coerente durante lo sviluppo e l'implementazione, ma consente anche di accedere al set ricco e altamente configurabile di errori e avvisi riportati dal compilatore Eclipse.

    
risposta data 27.11.2012 - 15:32
fonte
2

È principalmente (e dovrebbe quasi sempre) essere utilizzato per lavorare con Eclipse stesso come IDE o come piattaforma. Devi sempre costruire con il javac di produzione standard che fa parte di OpenJDK / Oracle / IBM's Java prima della distribuzione.

    
risposta data 26.11.2012 - 19:59
fonte

Leggi altre domande sui tag