Come configurare il percorso di compilazione di Eclipse per utilizzare le dipendenze di Maven?


124

Vorrei sfruttare le funzionalità fornite da Maven per la gestione delle dipendenze in un progetto. La mia breve comprensione di come funziona Maven è che acquisirà i JAR necessari e quindi realizzerà il progetto con queste librerie.

Attualmente ho un semplice file POM impostato come test:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.jamesgoodwin.test</groupId>
  <artifactId>com.jamesgoodwin.test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build>
  </build>
  <dependencies>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
        <version>3.0.0.RELEASE</version>
        <type>jar</type>
        <scope>compile</scope>
    </dependency>
  </dependencies>
</project>

Per gestire le dipendenze, di solito aggiungo il progetto o il JAR al percorso di compilazione e poi sarò in grado di costruire il mio progetto ..

Ma quando si utilizza M2Eclipse le dipendenze non vengono aggiunte automaticamente al percorso di compilazione. C'è qualche configurazione per far sapere a Eclipse che Maven sta gestendo le dipendenze?

Risposte:


116

Se fai clic con il pulsante destro del mouse sul tuo progetto, dovrebbe esserci un'opzione in "maven" per "abilitare la gestione delle dipendenze". Questo è tutto.


2
m2eclipse non lo fa per impostazione predefinita se importi un progetto creato con mvn eclipse: eclipse, quindi sembra sempre che questo faccia inciampare le persone.
matt b

28
In realtà era già abilitato per il mio progetto. Forse perché ho scelto di aggiungere un file POM a un progetto esistente? Tuttavia, facendo Maven> Aggiorna la configurazione del progetto sembra averlo risolto per me. Inoltre è stata la tua risposta che alla fine mi ha portato a scoprire quella barra degli strumenti dove potevo aggiustare il progetto. Molte grazie
James Goodwin

12
E se non è presente l'opzione "Maven" nel menu di scelta rapida, anche se sembra che m2eclipse sia installato?
dfrankow

85
Ah, "Configure" => "Converti in progetto Maven" è tuo amico!
dfrankow

2
@dfrankow cosa succede se l'opzione "Configure" => "Converti in progetto Maven" non esiste ??
vasilakisfil

67

se esegui

mvn eclipse:clean

seguito da

mvn eclipse:eclipse

if preparerà il .classpathfile eclipse per te. Cioè, questi comandi vengono eseguiti contro Maven dalla riga di comando, cioè al di fuori di eclipse.


Nota che funziona utilizzando una variabile del percorso di classe (M2_REPO) per fare riferimento alle tue dipendenze, non usa m2eclipse e non credo che raccolga le dipendenze che aggiungi mentre lavori al progetto, ma è ottimo per ottenere il configurazione iniziale in corso
matt b

@matt b: devi ripetere mvn eclipse: eclipse ogni volta che le tue dipendenze cambiano.
Buhb

Per aggiungere a ciò che ha detto Buhb, esegui mnv eclipse: eclipse sulla riga di comando e aggiorna il progetto Eclipse ogni volta che aggiungi più deps a pom.xml.
Binil Thomas

5
Non ce n'è bisogno quando si usa il plugin m2eclipse.
Pascal Thivent

3
Sto usando il plugin m2eclipse e ho riscontrato il problema dopo aver importato un progetto Maven esistente in eclipse. Fare mvn eclipse:cleane mvn eclipse:eclipseeffettivamente risolto il problema per me.
aioobe

29

Suppongo che tu stia usando m2eclipse come l'hai menzionato. Tuttavia non è chiaro se hai creato il tuo progetto in Eclipse o meno, quindi cercherò di coprire tutti i casi.

  1. Se hai creato un progetto "Java" in Eclipse (Ctrl + N> Progetto Java), fai clic con il pulsante destro del mouse sul progetto nella vista Esplora pacchetti e vai a Maven> Abilita gestione dipendenze (a seconda della struttura del progetto iniziale, potresti aver modificato in modo che corrisponda a quello di Maven, ad esempio aggiungendolo src/javaalle cartelle di origine nel percorso di compilazione).

  2. Se hai creato un "Maven Project" in Eclipse (Ctrl + N> Maven Project), dovrebbe essere già "Maven ready".

  3. Se hai creato un progetto Maven al di fuori di Eclipse (manualmente o con un archetipo), importalo semplicemente in Eclipse ( fai clic con il pulsante destro del mouse sulla vista Esplora pacchetti e seleziona Importa ...> Progetti Maven ) e sarà "pronto per Maven".

Ora, per aggiungere una dipendenza, fai clic con il pulsante destro del mouse sul progetto e seleziona Maven> Aggiungi dipendenza ) o modifica manualmente il pom.

PS: evita di usare il plugin maven -eclipse se stai usando m2eclipse. Non ce n'è assolutamente bisogno, sarà fonte di confusione, genererà un po 'di confusione. No, davvero, non usarlo a meno che tu non sappia davvero cosa stai facendo.


2
Ho appena scoperto che il plugin maven-eclipse era la causa dei miei strani errori di dipendenza irrisolti. Grazie!
vaughan

1
Uso solo EclipseNeon scaricato dal sito ufficiale .. Non c'è alcuna opzione Maven nel menu dopo aver creato il progetto java standard. Dobbiamo installare qualcosa separatamente o tutto è già scaricato con Neon?
Ewoks

@Pascal Thivent, ho importato il progetto Maven. Non sono in grado di trovare la soluzione per questo
Syed

19

Aggiungilo al file .classpath ..

<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
    <attributes>
        <attribute name="maven.pomderived" value="true"/>
    </attributes>
</classpathentry>

Grazie


1
sì, ho bisogno di aggiungerlo manualmente ovunque negli ultimi anni .... perché non impongono plugin di eclissi per riconoscere automaticamente le dipendenze di Maven ??
rasoio

1
Grazie per questa soluzione. Questo ha funzionato per me. Ho cancellato accidentalmente i file .project e .classpath. Questa soluzione ha funzionato per me per aggiungere dipendenze esperte nel percorso di classe,
Tahir Mehmood

La scorciatoia per generare automaticamente il file .classpath sopra è Project -> Maven -> Aggiorna progetto Altrimenti semplicemente Alt + F5
Venkateswara Rao

Ha funzionato anche per me. Ho risolto la maggior parte delle mie dipendenze mancanti ma ho ancora un paio di problemi, quindi mi chiedo se le soluzioni più user-friendly non funzionino perché c'è un piccolo errore da qualche parte (ma questo comportamento non aiuta a eseguire il debug del problema ...)
xenoid

14

Fare clic con il tasto destro sul progetto Configura> converti in progetto Maven

Quindi puoi vedere tutti i menu relativi a Maven per il tuo progetto.


nel modo giusto se non hai creato un progetto MVN in primo luogo
Hannes Schneidermayer

10

Mi è piaciuto questo ..

Fare clic con il tasto destro sul progetto -> configura -> converti in progetto Maven. Fare clic con il tasto destro sul progetto -> Maven -> aggiungi dipendenze.


5

In Eclipse (Marte) vai a:

Proprietà progetto -> Maven. Assicurati che "Risolvi le dipendenze dai progetti dell'area di lavoro" sia disabilitato .


Questo non ha risolto il problema originale, tuttavia ha risolto un altro fastidioso problema che ho avuto per settimane - Dopo aver disabilitato questa opzione, il mio progetto, che era in esecuzione solo da una riga di comando maven, ora è di nuovo in esecuzione all'interno di eclipse! Grazie!
Bill Hileman

4

Non ho trovato i menu Maven o di configurazione ma ho trovato il seguente pulsante che ha risolto il mio problema:

inserisci qui la descrizione dell'immagine


2

Quando m2eclipse è installato correttamente, dovrebbe aggiungere automaticamente le dipendenze. Tuttavia, dovresti generare i file di progetto eclipse inserendo:

mvn eclipse:m2eclipse

o, in alternativa, se non usi m2eclipse:

mvn eclipse:eclipse

3
Attenzione: dalla versione 2.8 maven-eclipse-plugin non supporta più "eclipse: m2eclipse" (non è stato possibile trovare motivo / informazioni sul perché)
Wolkenarchitekt

1

Ho avuto una leggera variazione che ha causato alcuni problemi: più sottoprogetti all'interno di un progetto. In questo caso dovevo andare in ogni singola cartella che conteneva un POM, eseguire il comando mvn eclipse: eclipse e quindi copiare / unire manualmente le voci del percorso di classe nel file del percorso di classe del mio progetto.


1

Per le versioni più recenti di Eclipse (> = Mars) fai clic con il pulsante destro del mouse su progetto> configura> converti in progetto Maven


1

Aggiungo le mie risposte per un paio di motivi:

  • In qualche modo nessuna delle risposte elencate ha risolto direttamente il mio problema.
  • Non sono riuscito a trovare "Abilita gestione delle dipendenze" in Maven. Sto usando Eclipse 4.4.2 build mercoledì 4 febbraio 2015.

Ciò che mi ha aiutato è stata un'altra opzione sotto Maven chiamata "Aggiorna progetto" e quindi quando clicco si apre questa finestra che ha una casella di controllo che dice "Forza aggiornamento di Snapshot / Rilasci". Lo scopo reale di questa casella di controllo è diverso, lo so, ma in qualche modo ha risolto il problema delle dipendenze. inserisci qui la descrizione dell'immagine


1

Niente di tutto ciò ha risolto il mio problema. ma quello che ho fatto è stato se fare clic su pom.xml, c'è una scheda in basso denominata dipendenze. in questa scheda è diviso in 2 sezioni, una chiamata dipendenze e una chiamata gestione delle dipendenze. selezionare ogni cosa nella sezione delle dipendenze e fare clic su aggiungi per essere sotto il controllo della gestione delle dipendenze. chiudi e riapri il tuo progetto.


0

Forse potresti esaminare il plugin maven -eclipse invece di M2Eclipse.

Lì fondamentalmente aggiungi la configurazione del plugin maven-eclipse al tuo pom.xml e poi esegui il mvn eclipse:eclipseche genererà i file richiesti .projecte .classpathper Eclipse. Quindi avrai il percorso di compilazione corretto in Eclipse.


eclipse: eclipse è cattivo, aggiunge tutte le librerie, una per una, alle tue dipendenze invece di fare affidamento su Maven
razor

0

Assicurati che il tuo POM segua la convenzione di denominazione e sia denominato in caratteri minuscoli come pom.xmle NOT POM.xml.

Nel mio caso tutto andava bene, ma Eclipse si è comunque lamentato quando ha provato a fare clic con il pulsante destro del mouse e Update project configuration- mi ha detto che il POM non può essere letto. Ha cambiato il nome in minuscolo - pom.xmlda POM.xml- e ha funzionato.


0

Ho incontrato anche questo problema. Quando aggiungo dipendenze in pom.xml, ho controllato nella cartella locale /Users/xyz/.m2/e i jar sono già stati scaricati lì, ma non posso aggiungere il buildpath di eclipse.

La mia versione eclipse: Mars.2 Release (4.5.2),

fare clic con il pulsante destro del mouse su progetto > Maven > Abilita risoluzione dell'area di lavoro

E questo ha risolto il mio problema.


0

In genere, puoi copiare il file .classpath da un progetto funzionante poiché non c'è nulla di specifico del progetto qui, supponendo che tu sia strutturato come un progetto Maven standard.


0

Questo ha funzionato per me in Eclipse Oxygen (4.7.0):

Fare clic con il pulsante destro del mouse su Progetto -> Maven -> Seleziona profili Maven ... quindi selezionare la casella Proxy del repository, premere OK.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.