2010-03-30 21 views
10

Ho il seguente frammento nel mio pom.xml (pom completo in allegato sotto del quale può essere eseguito)Maven Eclipse non aggiunge una dipendenza

<dependency> 
    <groupId>aspectj</groupId> 
    <artifactId>aspectjrt</artifactId> 
    <version>1.5.3</version> 
</dependency> 

e in uno dei miei file Java mi riferisco una classe org.aspectj.lang.ProceedingJoinPoint. Quando eseguo una "installazione mvn clean", compila e costruisce bene, ma quando eseguo un'eclissi: eclipse e importa il progetto in eclissi, mi dà un errore The import org.aspectj cannot be resolved. Ho controllato il file .classpath che è stato generato e non ha una voce in questo file. Ho provato un "mvn dependency: tree" e lo elenca bene.

Non ho alcuna impostazione di fantasia per non compilare alcun file java. È solo un pom di routine che mi lascia perplesso.

Qualcuno può dirmi cosa sta succedendo qui?

UPDATE 1: Sto usando Maven eclissare versione plugin: 2.7

UPDATE 2: Basta usare pom qui sotto e fare un mvn eclipse:clean eclipse:eclipse dalla riga di comando

<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.ekanathk</groupId> 
    <artifactId>stackoverflow</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.1</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>aspectj</groupId> 
      <artifactId>aspectjrt</artifactId> 
      <version>1.5.3</version> 
     </dependency> 
     <dependency> 
      <groupId>aspectj</groupId> 
      <artifactId>aspectjweaver</artifactId> 
      <version>1.5.3</version> 
     </dependency> 
    </dependencies> 
</project> 
+0

Ho provato con il pom fornito e ha funzionato per me. Nel caso, quale versione di Maven stai usando? –

+0

sei sicuro che il POM venga salvato su disco da Eclipse? –

risposta

4

ho solo cercato di riprodurre il problema e ... non potrebbe Questo è il .classpath ottengo dopo l'aggiunta del aspectj: la dipendenza 1.5.3 a un progetto appena creato:: aspectjrt: Vaso

<classpath> 
    <classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/> 
    <classpathentry kind="src" path="src/main/java" including="**/*.java"/> 
    <classpathentry kind="output" path="target/classes"/> 
    <classpathentry kind="var" path="M2_REPO/aspectj/aspectjrt/1.5.3/aspectjrt-1.5.3.jar"> 
    <attributes> 
     <attribute value="jar:file:/home/pascal/.m2/repository/aspectj/aspectjrt/1.5.3/aspectjrt-1.5.3-javadoc.jar!/" name="javadoc_location"/> 
    </attributes> 
    </classpathentry> 
    <classpathentry kind="var" path="M2_REPO/junit/junit/3.8.1/junit-3.8.1.jar" sourcepath="M2_REPO/junit/junit/3.8.1/junit-3.8.1-sources.jar"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
</classpath> 

Quale versione del plugin Maven Eclipse stai usando? Lo hai configurato per usare AJDT? Puoi mostrare la tua configurazione?

+0

Uso del plug-in Maven eclipse 2.7. Come posso configurarlo per utilizzare AJDT? Inoltre, non dovrebbe funzionare con Zero config. aspectj è solo un'altra libreria come dire log4j? –

+1

L'aggiunta di una dipendenza al classpath è zero config (una volta nel pom), come mostrato sopra. Tuttavia, il plugin eclipse non può indovinare se stai usando AJDT o meno, quindi devi dirglielo (http://maven.apache.org/plugins/maven-eclipse-plugin/examples/ajdt-projects.html). Ma questo non risolve il problema del percorso di classe. A proposito, suggerisco di usare la versione 2.8. –

+0

L'uso del plugin Maven eclipse 2.8 risolve il problema. Odio i sistemi che cercano di essere "troppo intelligenti" rispetto a quello che dovrebbero essere. In questo caso stavo ispezionando del codice e volevo entrare in eclissi al più presto, ma cose come queste sono un fastidio nel ***. –

8

Ho avuto un problema simile. In esecuzione mvn eclipse:clean e poi mvn eclipse:eclipse aiutato.

+1

Ho già provato questo e questo non aiuta –

+0

risolto per me, grazie –

+0

ancora funzionato come un fascino! grazie! – Nigul

7

Ho avuto un problema simile. Il plugin Eclipse per Maven presuppone che Eclipse abbia il proprio supporto per AspectJ. Quindi devi dirti di non averne (o di dirgli quale versione hai). L'aggiunta di

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-eclipse-plugin</artifactId> 
    <configuration> 
     <ajdtVersion>none</ajdtVersion> 
    </configuration> 
</plugin> 

al <build><plugins> sezione dovrebbe aiutare.

+0

questo ha risolto il mio problema anche senza aggiornare il plug-in 2.8 maven-eclipse. Grazie! – guido

+0

Bello! Non sono sicuro del motivo per cui questa risposta sia qui comunque.È l'unica risposta reale alla domanda sulla pagina! :) – Steve

1

Hai provato a utilizzare m2eclipse invece? Tende a produrre risultati molto migliori nella mia esperienza.

Problemi correlati