2009-11-27 15 views
6

Ho un modulo di utility per GWT che non ha un'interfaccia utente (da qui, non c'è nessuna classe che eredita da com.google.gwt.core.client.EntryPoint Quando provo a compilare questo modulo con GWT 1.7.1, ottengo questo errore:Come si compila un modulo senza un EntryPoint? .

[ERROR] Module has no entry points defined 

Come faccio a sbarazzarsi di questo errore? devo veramente definire un punto di ingresso fittizio? Come ha fatto Google sempre compilare i propri moduli di utilità ???

+0

ma è necessario almeno uno per applicazione: è coperto? – jldupont

+0

Sì. Ho un punto di accesso in un altro modulo. Sono solo perplesso su come posso compilare un modulo senza un EP. –

risposta

0

Sto utilizzando il plug-in Maven2 gwt-maven-plugin per compilare il mio codice. Ho migrato il codice da una vecchia versione del plugin maven-googlewebtoolkit2-plugin. Per il vecchio plug-in, ho dovuto specificare quali moduli sono stati i punti di ingresso in questo modo:

   <compileTargets> 
        <param>com.project.module.Module</param> 
       </compileTargets> 

Per il nuovo plug-in, è

   <module>com.project.module.Module</module> 

Poiché il plugin non riusciva a trovare quali moduli per la compilazione, è cercare "* .gwt.xml" e compilarli tutti in "moduli UI" (che devono avere un punto di ingresso).

3

No che non è necessario un EntryPoint. Ecco un esempio di uno dei miei moduli che non ne ha uno:

<?xml version="1.0" encoding="UTF-8"?> 
<module> 
    <source path="grid" /> 
    <inherits name="com.google.gwt.user.User"/> 
</module> 

La risposta breve è che non si compila il codice nei moduli. GWT ha solo bisogno di loro come codice sorgente. Quando compili il tuo modulo principale (quello con il punto di ingresso) usa il sorgente da qualsiasi altro modulo che hai ereditato nel tuo file .gwt.xml per compilare l'intero progetto.

+0

+1 Questo non ha risolto il mio problema ma mi ha indirizzato nella giusta direzione. –

5

Non è necessario compilare i giare di utilità da GWT.

Se si desidera riutilizzarlo come libreria in altre applicazioni GWT, è sufficiente spostare i file .class e .java in un contenitore e assicurarsi di disporre di un file .gwt.xml che indica dove si trova il client la fonte è Se si seguono le convenzioni (classi client a client) allora si può uscire solo con altrimenti è necessario specificare un tag per il pacchetto client

Quindi assicurarsi che si eredita questo .gwt.xml in i progetti in cui si desidera compilare un punto di ingresso.

+0

+1 per la spiegazione esatta. –

+1

La cosa fastidiosa è che se utilizzi accidentalmente un codice che non è disponibile nel client GWT, non causerà un errore finché non provi a compilarlo nell'app completa. Pertanto, è possibile produrre giare di utilità, come li chiamate, che non sono effettivamente validi per l'utilizzo da parte di GWT. C'è un modo per aggirare questo? – Shannon

0

Abbiamo un modulo di utilità, che costruisce & gestisce alcuni elementi dell'interfaccia utente comuni e una serie di attività comuni di javascript/json.

Sembra che quello che abbiamo fatto (anche migrato dal plugin totsp al plugin codehaus da qualche parte lungo la linea) doveva includere un punto di ingresso nel modulo util; era solo vuoto. (Include il commento "Intenzionale opzionale").

Quindi il pom si riferisce solo alla cosa come dipendenza.

0

Se si utilizza il plug-in GWT di Eclipse, rimuovere il modulo senza un EntryPoint dall'elenco dei moduli che viene visualizzato prima della compilazione.

Problemi correlati