2011-01-11 16 views
5

Finora ho usato tomcat e glassfish per sviluppare un'applicazione web di test, senza esperti. E il solito ciclo di sviluppo-till-Deploy è semplice:Ciclo di sviluppo efficiente con Maven, Tomcat/Glassfish, Archetype?

  1. sviluppano in Eclipse, con una cartella WebContent, che è la cartella principale webapp che ha il WEB-INF, web.xml, WEB-INF/lib, n tutti. La posizione delle classi compilate in eclipse è impostata su WEB-INF/classes.

  2. dopo la codifica, ho potuto semplicemente fare clic sul pulsante di ricarica nella console di amministrazione glassfish per quella specifica webapp. In Tomcat, credo che sia ricaricato anche nel gestore del tomcat.

  3. ho potuto accedere all'applicazione web nel browser

Ora, se mi piacerebbe creare una nuova webapp, che ti fanno uso di tutte le stoffe di JSF, la primavera, JPA, hibernate, PostgreSQL :

  1. quale raccomandazione di archetipo devo usare nella realizzazione del progetto?

  2. posso ancora utilizzare i miei precedenti passaggi di sviluppo? perché penso che sia molto facile senza dover riconfezionare tutto in un file di guerra, o copiarlo nella cartella webapp del tomcat ogni volta che voglio testare. Salvando i file in eclissi, colpisci il reload nella console di amministrazione/tomcat manager e potrei immediatamente testare la webapp aggiornata.

Oppure cosa fai di solito nel ciclo di sviluppo del webapp? Per favore condividi le tue esperienze, =)

Grazie!

+0

BTW: Eclipse STS 2.5.2.RELEASE Changlog (da oggi) ha menzionato una nuova funzione chiamata "Ricarica basata su agente". Dovrebbe aggiornare l'applicazione nel server di sviluppo senza riavviarlo. – Ralph

risposta

6

ciclo di sviluppo con Maven e amici

  1. Usa Maven per guidare il vostro ciclo codice-build-test-distribuire-release.
  2. Inizia con Maven Archetype quello più adatto alla tua web-app. Questo creerà per te tutta la struttura della cartella e aggiungerà le depistazioni Jar.
  3. Utilizzare un server leggero incorporato come Jetty, questo sarà molto veloce sulla macchina di sviluppo senza risucchiare risorse ed è altamente configurabile. Inoltre, puoi impostarlo per le modifiche di ricarica automatica.
  4. La maggior parte del progetto Maven è supposta da testare.Di cui Maven si occupa di usare il suo surefire plug-in. Quindi, ogni build avrà una fase di test.
  5. È possibile definire più profili per vari ambienti (test, dev, prod, Win, Unix ..). Questi profili alterano il comportamento del progetto per essere compatibili con l'ambiente.
  6. Utilizzare Cargo, ancora un plug-in Maven per distribuire i build sul server di test o di produzione, che può essere Glassfish, Tomcat, Jetty o qualsiasi altro server web.
  7. Utilizzare Liquibase with or without Maven :) per gestire le modifiche del database nello stesso modo in cui si gestisce la modifica del codice.

Sono venuto da un progetto quasi simile come il tuo nella mia precedente azienda. Lo sviluppo con Maven rende le cose così fluide e il cambiamento è apprezzabile.


Un po 'di ricerca su Google dimostra che qualcuno ha lavorato su archetipi per JSF and JPA with Spring


Modifica # 1 - ha aggiunto ulteriori dettagli

di fattibilità e facilità d'uso

  • Maven nasce dalla necessità di semplificare il processo di sviluppo per codice grande e distribuito.
  • Maven è molto bene integrato con Eclipse - quindi è indolore.
  • Il molo continua a monitorare le cartelle di origine, quindi le modifiche vengono implementate quasi immediatamente.
  • È possibile personalizzare la generazione per saltare i test, per non creare dipendenze. Quando si modifica un componente dell'interfaccia utente, Jetty lo copierà automaticamente nella cartella "destinazione".
  • Se sei preoccupato di copiare e ridistribuire. È necessario read THIS per vedere l'efficienza delle operazioni, tenendo presente che non è necessario eseguire la compilazione-test-deploy ogni volta che si modifica un JSP o HTML.

Detto questo, vorrei dire che Maven potrebbe essere un apprendimento impegnativo. Questo è un modo orientato agli oggetti del ciclo di sviluppo, per dire. La maggior parte di noi, che sono abituati a creare script, può trovare inizialmente un po 'noioso/verboso.

Risorse

vorrei suggerire di passare attraverso le seguenti risorse

+0

Quindi nel ciclo di sviluppo che hai citato, un codice nell'IDE/editor, usa Maven per testare, compilare, pacchettizzare, ridistribuire sul server, sono corretto?Con il mio modo di pensare primitivo e inesperto, che quando il progetto cresce, con molte classi, molti casi di test, preferirei saltare la compilazione o copiare molti file nella cartella webapp (l'I/O potrebbe essere piuttosto lento e si sommerà con la quantità dei cicli), e forse vorrebbe anche saltare i test quando modifico semplicemente le classi dell'interfaccia utente o qualcosa di semplice, così che non ho bisogno di ripetere tutti i test ogni volta. – bertie

+0

@Albert Kam ha aggiunto ulteriori dettagli – Nishant

+0

Grazie mille per la spiegazione dettagliata. Per me, tranquillizza alcune delle nuove cose che hai menzionato, come carico, profilo, pontile, liquibase. Ho appena implementato con successo una semplice webapp per tomcat 7 usando cargo. Dovrò sperimentare di più sull'efficiente ciclo di vita usando tomcat. Sto pensando di provare il molo, ma non sono sicuro, dal momento che il programmato distributore è Tomcat 7, e dubito che se lo sviluppo con il molo e infine lo metti nel tomcat 7 in produzione è una buona idea. Grazie ancora ! =) – bertie

0

per il Q2:

È comunque possibile eseguire/app debug con Tomcat dall'interno dell'IDE (Eclipse), anche se si cambia la struttura di directory. (Come la struttura Maven dir invece di struttura dir web dinamico di Eclipse)

Project properties - > 
project facets - > 
Dynamic Web Module -> 
Click the appearing "further configuration available" 
and set your content dir and context root. 

Non dovete confezionare ogni volta che si desidera eseguire/debug.

Un'altra opzione sta usando Jetty

e sono sicuro che ci sono più opzioni altri vi dirà pure.

Problemi correlati