2010-03-30 17 views
10

Mam następujący fragment w moim pom.xml (Full pom załączony poniżej, które mogą być wykonywane)Maven Eclipse nie dodać zależność

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

iw jednym z moich plików Java odsyłam klasę org.aspectj.lang.ProceedingJoinPoint. Kiedy robię "instalację czystą mvn", kompiluje i buduje dobrze, ale kiedy robię zaćmienie: zaćmienie i importuję projekt w stan zaćmienia, daje mi to błąd The import org.aspectj cannot be resolved. Sprawdziłem wygenerowany plik .classpath, który nie ma wpisu do tego pliku. Próbowałem "zależność mvn: drzewo" i wymienia to dobrze.

Nie mam żadnych wymyślnych ustawień dla nie kompilowania żadnych plików Java. To tylko zwykła pom, która mnie zastanawia.

Czy ktoś może mi powiedzieć, co tu jest nie tak?

UPDATE 1: Używam Maven eclipse plugin Version: 2.7

UPDATE 2: Wystarczy użyć pom poniżej i zrobić mvn eclipse:clean eclipse:eclipse z linii poleceń

<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

Próbowałem z dostarczoną pom i to działało dla mnie. Na wszelki wypadek, jakiej wersji Maven używasz? –

+0

czy jesteś pewien, że POM jest zapisywany na dysku przez Eclipse? –

Odpowiedz

4

Ja tylko starałem się odtworzyć problemu i ... nie mógł. To .classpath uzyskać po dodaniu AspectJ: uzależnienie od 1.5.3 do świeżo utworzonego projektu:: aspectjrt: słoik

<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> 

Jaka wersja wtyczki Maven Zaćmienie używasz? Czy skonfigurowałeś go do korzystania z AJDT? Czy możesz pokazać swoją konfigurację?

+0

Korzystanie z wtyczki Maven Eclipse 2.7. Jak skonfigurować go do korzystania z AJDT? Plus, nie powinno działać z zerową konfiguracją. aspectj to po prostu kolejna biblioteka podobna do log4j? –

+1

Po prostu dodanie zależności do ścieżki klasy jest zerową konfiguracją (raz w pom), jak pokazano powyżej. Jednak wtyczka eclipse nie może odgadnąć, czy używasz AJDT, czy nie, więc musisz mu powiedzieć (http://maven.apache.org/plugins/maven-eclipse-plugin/examples/ajdt-projects.html). Ale to nie rozwiązuje problemu z dziwną ścieżką klasową. Przy okazji, proponuję użyć wersji 2.8. –

+0

Samo użycie wtyczki Maven Eclipse 2.8 rozwiązuje problem. Po prostu nienawidzę systemów, które starają się być "przesadnie inteligentne" niż te, które powinny być. W tym przypadku sprawdzałem kod i chciałem dostać się do Zaćmienia JAK NAJSZYBCIEJ, ale takie rzeczy są uciążliwe w ***. –

8

Miałem podobny problem. Uruchamianie mvn eclipse:clean, a następnie mvn eclipse:eclipse pomogło.

+1

Próbowałem już to i to nie pomaga –

+0

naprawiono go dla mnie, dzięki –

+0

nadal działał jak urok! dzięki! – Nigul

7

Miałem podobny problem. Wtyczka Eclipse for maven zakłada, że ​​Eclipse ma własną obsługę AspectJ. Musisz więc powiedzieć, że go nie masz (lub powiedzieć, którą wersję masz). Dodawanie

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

do <build><plugins> sekcji powinno pomóc.

+0

rozwiązało to mój problem, nawet bez aktualizacji do wersji 2.8 maven-eclipse. Dzięki! – guido

+0

Niezły! Nie wiem, dlaczego ta odpowiedź jest tutaj.To jedyna aktualna odpowiedź na pytanie na stronie! :) – Steve

1

Czy próbowałeś już używać m2eclipse? Zwykle daje lepsze wyniki w moim doświadczeniu.

Powiązane problemy