Ho appena iniziato lo sviluppo di GWT usando Maven come sistema di compilazione.Esiste una struttura di progetto GWT Maven, che non confonde le responsabilità?
Vengo dal mondo Java + Flex, quindi naturalmente ho moduli lato client e moduli lato server separati in modo pulito.
Mentre scavando nelle best practice del GWT e scavando sempre più in profondità, per me la configurazione di default dei progetti GWT sembra sempre più un totale disordine di responsabilità. Soprattutto quando si tratta di progetti multi-modulo.
Ho capito che la convenzione afferma che la logica lato server appartiene ai pacchetti "server", il codice condiviso in "condiviso" e tutto ciò che è compilato in HTML + JavaScript dal compilatore GWT in pacchetti "client". E tutto il codice va a src/main/java. Fin qui tutto bene.
Non importa come cerco di vederlo ... per me la roba nei pacchetti "client" è semplicemente un codice morto. Anche se il compilatore java lo compila in classi, le classi non vengono mai utilizzate in runtime e sono necessarie solo per fornire input al compilatore GWT nella fase di compilazione. Quindi, anche se sembra Java, in realtà non lo è e sembra solo Java. E 'un po' sporco da collocare all'interno degli stessi vasi del codice "live".
sarebbe non una struttura esperto di come questo più senso:
/src/
/src/main/
/src/main/java
/src/main/shared
/src/main/gwt
E per avere l'uso java-compiler-plugin src/main/java e src/main/condivisa e il compilatore GWT da usare src/main/gwt e src/main/shared?
Inoltre sarebbe molto meglio se la build producesse due tipi di artefatti ... normali "vasi" contenenti clases da src/main/java e src/main/shared e un secondo "gwt", che contiene classi e sorgenti di src/main/gwt e src/main/shared.
Non aggiungerei una dipendenza a un contenitore misto, ma potrei decidere se voglio importare alcuni componenti GWT o se voglio importare alcune funzionalità lato server.
La prossima cosa è che il default GWT è quello di mettere XML, risorse e altre cose in src/main/java ... XML & & risorse! = Java ;-)
O c'è un vero motivo per tutto questo, che semplicemente non ho ancora capito ... o devo semplicemente cominciare a sporcarmi e non a scrivere cose del genere?
Chris
Stavo solo discutendo uno scenario in cui avevo un Sample Singleton nel mio pacchetto server ed era facile chiamare un metodo su questo dal codice lato client. Quindi per me l'anima pulita sarebbe avere 3 progetti (client, condivisi, server) ... ma immagino che questo possa far esplodere le cose in modo drammatico. –
Non mi sono mai preoccupato di condividere, non mi piace il GWT RMI, troppo confuso. Io uso solo XML per le comunicazioni client/server. GWT ha la gestione xml. – NickJ