Le dipendenze Maven non sono visibili in WEB-INF / lib

Sto avendo questo strano problema nel rendere il mio progetto basato su Maven. Ho creato un nuovo progetto Maven in Eclipse e triggersto le sfaccettature Dynamic Web. Ma durante il runtime ora genera ClassNotFoundException perché le dipendenze Maven non vengono copiate nella directory WEB-INF/lib . Ho anche provato ad aggiungere la sezione delle dipendenze di copia in POM, ma non è stato d’aiuto.

Qualcuno qui sembrava averlo risolto nel modo giusto, ma suppongo che abbia dimenticato di menzionare la soluzione: 🙁

Questo non dovrebbe avere nulla a che fare con eclipse e m2eclipse, e opzionalmente per un supporto migliore – m2e-wtp . Inoltre, non hai bisogno di dipendenze di copia. Ecco alcuni possibili motivi:

  • dovresti invocare il mvn package (o fare clic con il tasto destro del mouse> maven> pacchetto) e ottenere un file di guerra – il (nel pom) deve essere una war
  • le tue dipendenze dovrebbero avere l’ambito predefinito (se sono provided o test non saranno incluse nell’archivio)
  • se si sta eseguendo il progetto come progetto Web dinamico su un server all’interno di eclipse, è necessario aprire le proprietà del progetto (fare clic con il tasto destro> proprietà) e selezionare “Deployment Assembly”. Fare clic su “aggiungi”, selezionare “crea voci di percorso” e scegliere “dipendenze Maven”. Questo istruirà WTP a inviare le dipendenze Maven alla directory del server.

Prima installazione Maven Integration For Eclipse WTP (Help-> Eclipse Marketplace)

Quindi nel pom.xml del tuo progetto web aggiungi:

  war 

Dopo di ciò basta fare clic con il tasto destro del mouse sul progetto, Maven -> Aggiorna progetto, che dovrebbe aggiungere automaticamente le Dipendenze Maven nel Deployment Assembly.

Fare clic con il tasto destro del mouse su progetto> Maven> Aggiorna progetto Maven> OK risolto per me

Controllare la proprietà dell’Assembly di distribuzione del progetto. Ho visto alcune mvn eclipse:eclipse generato che i progetti Eclipse a volte hanno le risorse che vengono distribuite nella posizione sbagliata. Da quello che posso ricordare il nuovo Deployment Assembly ha avuto alcuni problemi con le precedenti versioni di Eclipse 3.6 (Helios).

Ho appena fatto Maven -> progetto di aggiornamento ha funzionato per me.

vuoi usare il plugin copy-dependencies

vedi questo post e i documenti

Se osservi la tua implementazione e vedi che WEB-Inf / lib è vuoto delle tue dipendenze Maven, assicurarti che tali dipendenze Maven siano nel tuo gruppo di distribuzione è fondamentale come menzione nella risposta scelta.

Tuttavia, diffidare di Eclipse, quindi non aggiornare tutto anche con un aggiornamento Maven. Se si pulisce, si ricostruisce e si ridistribuisce e ancora non si vede la cartella lib che viene popolata, provare a rimuovere e riaggiungere l’applicazione alle distribuzioni del server tramite Server> Aggiungi e Rimuovi.

Questo ha sbloccato il sistema per me.

Progetto con il tasto destro del mouse -> Deployment Assembly: verifica se le dipendenze Maven e tutte le altre sono presenti. In caso contrario, fare clic con il tasto destro del mouse su Progetto -> Maven -> Abilita risoluzione del workspace

(forse poi Maven -> Aggiorna progetto, ma poi guarda di nuovo in “Deployment Assembly” e guarda cosa hai.) questo lo risolse (finalmente!) per me.