2012-01-17 18 views
15

Sto lavorando a un progetto con molti progetti Maven diversi. Ho fatto un sacco di test JUnit su questi progetti, e di solito questo va bene. Apro Eclipse, clic destro in explorer del pacchetto-> Importa ... Progetti Maven esistenti e sono in grado di importare l'ammenda del progetto. Posso creare, eseguire il drill-down su src/test/java ... Fare clic con il pulsante destro del mouse sul file e eseguire un test Run As JUnit. Ogni tanto però, non riesco a farlo funzionare. Se faccio clic destro per fare un Run As, tutto quello che ottengo è l'applicazione AspectJ/Java. Non ci sono test JUnit.Il progetto Maven non viene trattato come Java in Eclipse

Ho notato che l'icona accanto alla cartella del progetto ha solo un'icona M e una cartella, mentre con i progetti che funzionano, c'è una cartella, M, AND a AJ. Ho anche notato che non sembra ordinare i file nei loro pacchetti come normali progetti Java. Sembra che non stia trattando il progetto come un progetto AspectJ. Come posso ottenere Eclipse per riconoscere questo progetto Maven come progetto Java?

+0

puoi capire qual è la differenza tra questi due progetti, quello in cui ottieni RunAsJunit e quello in cui non lo ottieni? pom.xml probabilmente ha la risposta. – milan

risposta

1

Controllare il file pom.xml per i progetti che non hanno la natura AspectJ (AJ sul progetto). Mancano il plugin AspectJ-Maven? Essi devono avere una sezione come:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>aspectj-maven-plugin</artifactId> 
    <executions> 
     <execution> 
     <goals> 
      <!-- use this goal to weave all your main classes --> 
      <goal>compile</goal> 
     </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <complianceLevel>1.6</complianceLevel> 
    </configuration> 
</plugin> 

Anche dare un'occhiata alla sua domanda: Maven/AJDT project in Eclipse

4

Dipende dalle Eclipse project facet proprietà (se si utilizza Java EE), vi consiglio di clic destro su proprietà del progetto e vedi quale sfaccettatura è definita per il tuo progetto.

+0

Penso che questa sia una soluzione per molte persone e altri problemi. Li reindirizzerà a questa risposta. Grazie mille –

7

Fare clic con il tasto destro del mouse su Project ->Properties ->Project Facets, quindi selezionare tutti gli aspetti che si applicano al caso (ad esempio java).

1

Ho parlato con un collega e sono riuscito a "risolvere" il problema. Ho fatto un'eliminazione da Eclipse (non da disco) e ho subito ri-fatto l'importazione di Maven e ora funziona magicamente.

Sembra che si sia verificato un errore con pom.xml, in particolare se la versione padre era errata, che il progetto Maven non viene importato/creato correttamente. Una volta risolti i problemi nel POM, il progetto sarebbe andato bene senza problemi ma era ancora solo un progetto Maven. Una volta rimosso e re-importato, POI lo ha trattato come un progetto Maven/AspectJ.

+2

È possibile accettare la propria risposta per chiudere questa domanda. – kriegaex

2

stavo affrontando lo stesso problema e la procedura seguente risolto nel mio caso:

1- Aprire il pom.xml del progetto problematico.

2 -Nella scheda panoramica, controllare le impostazioni Manufatto/Imballaggio.

3- Se è impostato su "pom", cambiarlo in "jar".

4- Salvare le modifiche, quindi eliminare il progetto solo da eclipse e reimportarlo.

Spero che questo aiuti!

26

Molte delle risposte esistenti dovrebbero funzionare, ma quelle che suggeriscono di aggiungere un facet Java funzioneranno solo se il progetto è già di (o si desidera convertirlo) una natura sfaccettata, e quella che suggerisce di cambiare il tuo pom.xml funzionerà solo se poi reimporterai il tuo progetto come progetto maven.

Se desideri "correggere" il tuo progetto esistente, ad es.aggiungi una natura Java senza convertirla in forma sfaccettata e senza eliminare e reimportare, modifica il tuo file .project (esternamente, o con la vista Navigator in eclissi, poiché non verrà visualizzato nel tuo pacchetto explorer) e aggiungi java builder e java natura per il costruttore Maven/natura esistente:

<?xml version="1.0" encoding="UTF-8"?> 
<projectDescription> 
    <name>yourprojectname</name> 
    <comment></comment> 
    <projects> 
    </projects> 
    <buildSpec> 
     <!-- add this build command --> 
     <buildCommand> 
      <name>org.eclipse.jdt.core.javabuilder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
     <!-- this would've already been there --> 
     <buildCommand> 
      <name>org.eclipse.m2e.core.maven2Builder</name> 
      <arguments> 
      </arguments> 
     </buildCommand> 
    </buildSpec> 
    <natures> 
     <!-- add this nature --> 
     <nature>org.eclipse.jdt.core.javanature</nature> 
     <!-- this would've already been there --> 
     <nature>org.eclipse.m2e.core.maven2Nature</nature> 
    </natures> 
</projectDescription> 

nota la diversa capitalizzazione (javabuilder ma maven2Builder, javanature ma maven2Nature).

Non appena si salva, dovrebbe rigenerarsi automaticamente. Potrebbe essere necessario aggiungere manualmente le cartelle di origine (Project properties ->Java Build Path - scheda>Source -.>Add Folder...

+2

Ho trovato solo l'eliminazione dei file .project e anche la reimportazione dei poms ha risolto il problema: non riesco a capire come faccia a finire in questo stato negativo. – bacar

+0

Questo ha funzionato per me. – jayanth

+0

Ma ora tutte le mie importazioni e ho oltre 4000 errori di compilazione. – demongolem

3

Ho affrontato lo stesso problema (dopo l'importazione pom.xml di eclissare, il progetto non è trattato come un java uno, e c'è solo "maven project builder" nella proprietà dei project builder, ma non "java builder") in eclipse luna

Reimportazione del progetto di maven dopo aver eliminato la cartella ".settings" e il file ".project" non ha funzionato Reimportazione dopo un interruttore di lavoro ha funzionato per me

0

eclissi: eclissi creerà i file necessari .project che aggiungeranno java natura altri & proprietà al progetto

0

miei cinque centesimi ... Nel mio caso mi è stato 'perdendo' sempre la natura 'Java' del progetto in quanto il file pom era impostato su "pacchetto come orecchio". Non c'era nessun messaggio di errore o di avvertimento, che sarebbe bello avere. Non appena ho cambiato il pacchetto in "jar", ho potuto impostare la natura del progetto su Java ed è persistente.

0

Ho anche provato tutti gli approcci descritti in questa discussione. La modifica di .project non è sufficiente perché le librerie maven non verranno utilizzate per la creazione del progetto e la generazione del progetto avrà esito negativo. mvn eclipse: eclipse creerà un percorso .class lungo e inutile senza utilizzare effettivamente m2e.

Il modo più semplice è creare un nuovo progetto java, convertirlo nel progetto Maven e aprire .project e .classpath per questo nuovo progetto. Quindi apportare modifiche simili per il progetto Maven importato.

Gli importanti cambiamenti per il file .project sono state descritte, ma al fine di utilizzare le dipendenze Maven in Eclipse qualcosa di simile a questo dovrebbe essere nel file .classpath

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> 
     <attributes> 
      <attribute name="maven.pomderived" value="true"/> 
     </attributes> 
    </classpathentry> 
    <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> 
     <attributes> 
      <attribute name="maven.pomderived" value="true"/> 
     </attributes> 
    </classpathentry> 

Utilizzando sfaccettature non è un'opzione in questo caso perché con sfaccettature Eclipse non usa m2e e le dipendenze Maven. Anche in questo caso le dipendenze con facet devono essere gestite manualmente.

Ho provato tutto questo con Eclipse 4.6.2 Neon.

Problemi correlati