2011-08-18 18 views
7

Ho appena passato a Eclipse Indigo da Helios e mi sono imbattuto in qualche problema durante il tentativo di eseguire un progetto Web abilitato per Maven su Tomcat 6 con WTP.Eclipse 3.7/Indigo m2e Problema di dipendenza dall'integrazione WTP

Sto vivendo il classico problema di Tomcat che non vede le dipendenze Maven. In Helios, la soluzione alternativa era aggiungere le dipendenze Maven al Deployment Assembly tramite: Proprietà progetto -> Deployment Assembly -> Aggiungi 'Java Build Path Entries' -> Maven Dipendenze

Sfortunatamente, l'opzione 'Percorso di costruzione Java' Le voci "non vengono elencate, solo" Cartella "e" Progetto ". Non sono sicuro che sia intenzionale o se c'è qualcosa di sbagliato nel mio setup.

Nel tentativo di rimuovere i fattori esterni, sto utilizzando la seguente configurazione:

  • nuova installazione di Eclipse Indigo (Mac)
  • Fresh lavoro
  • M2E WTP Integrazione installato tramite Eclipse Marketplace
  • Creare un nuovo progetto Maven
  • Aggiungere alcune dipendenze Maven e un codice per utilizzarle
  • C progetto onvert a forma sfaccettata
  • Add aspetto 'dinamico Web Module'
  • Maven> Aggiornamento configurazione del progetto
  • Aggiungere a una Tomcat 6 Server
  • Run sul server di

A questo punto, vedo ottenere ClassNotFoundException relativo alle mie dipendenze mancanti. Se eseguo 'mvn war: war' e includo la directory 'WEB-INF/lib' assemblata nel Deployment Assembly del progetto, ovviamente le dipendenze vengono prelevate correttamente - bene per una soluzione rapida, ma non ideale.

La maggior parte dei problemi che ho letto relativi a problemi simili è stata ridotta a un modulo di integrazione WTP mancante, ma questo non sembra essere il problema per me.

Sto facendo qualcosa di sbagliato?

+0

Il tipo di imballaggio del vaso "new maven project" o war? – Raghuram

+0

La confezione era JAR - Sono passato a WAR e il server ora funziona correttamente! Invia questo come risposta in modo che io possa contrassegnarlo come corretto - Grazie. – sebrichards

+0

Inserito il commento come risposta. – Raghuram

risposta

3

Sembra che il tipo di imballaggio dello new maven project sia jar. Se è così, puoi cambiarlo in war e provare.

1

Ecco un'altra soluzione: fisso.file di percorso di classe

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> 
      <attributes> 
-     <attribute name="org.eclipse.jst.component.nondependency" value=""/> 
+     <attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/> 
      </attributes> 
    </classpathentry> 
1

clic destro del mouse sul progetto

  1. scegli Assemblea distribuzione> fare clic su Aggiungi

  2. Scegliere Java voci accumulo percorso dalla finestra pop-up, fare clic su Avanti

  3. Utilizzare Ctrl e mouse per selezionare tutto mostrato lib

Successivamente, verranno visualizzate le modifiche nel file .classpath.

Pubblica nuovamente il progetto nella scheda server.

+1

Queste impostazioni vengono perse ogni volta che si esegue un aggiornamento di Maven. Il plug-in m2e sovrascrive queste impostazioni, quindi sono praticamente inutilizzabili quando si tratta di app Web abilitate per Maven ... –

Problemi correlati