2010-03-30 3 views
10

я следующий фрагмент в моей pom.xml (Full ПОМ прилагается ниже, которые могут быть выполнены)Maven затмение не добавляет зависимость

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

и в одном из моих Java-файлов я имею в виду класс org.aspectj.lang.ProceedingJoinPoint. Когда я делаю «mvn clean install», он компилирует и строит отлично, но когда я делаю eclipse: eclipse и импортирую проект в eclipse, он дает мне ошибку The import org.aspectj cannot be resolved. Я проверил файл .classpath, который был сгенерирован, и у него нет записи в этот файл. Я попробовал «mvn dependency: tree», и он перечисляет это в порядке.

У меня нет никаких причудливых настроек для компиляции каких-либо java-файлов. Это просто рутина, которая меня озадачивает.

Может кто-нибудь сказать мне, что здесь происходит не так?

UPDATE 1: Я использую Maven плагин Eclipse Версия: 2.7

UPDATE 2: Просто используйте ПОМ ниже и сделать mvn eclipse:clean eclipse:eclipse из командной строки

<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

Я пробовал с предоставленным помпом, и это сработало для меня. На всякий случай, какую версию Maven вы используете? –

+0

вы уверены, что POM сохраняется на диске Eclipse? –

ответ

4

Я просто попытался воспроизвести проблему и ... не мог. Это .classpath я получаю после добавления AspectJ: зависимость 1.5.3 для только что созданного проекта:: aspectjrt: баночка

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

Какую версию Maven плагин Eclipse вы используете? Вы настроили его для использования AJDT? Можете ли вы показать свою конфигурацию?

+0

Использование плагина Maven eclipse 2.7. Как настроить его для использования AJDT? Кроме того, не следует ли работать с Zero config. aspectj - это еще одна библиотека, например say log4j? –

+1

Просто добавление зависимости от пути к классам - это нуль config (один раз в pom), как показано выше. Однако плагин eclipse не может догадаться, если вы используете AJDT или нет, поэтому вам нужно сказать ему (http://maven.apache.org/plugins/maven-eclipse-plugin/examples/ajdt-projects.html). Но это не решает проблему, связанную с нечетким классом. Кстати, я предлагаю использовать версию 2.8. –

+0

Простое использование плагина Maven eclipse 2.8 решает проблему. Я просто ненавижу системы, пытающиеся быть «чрезмерными», чем они должны быть. В этом случае я изучал некоторый код и хотел попасть в затмение как можно скорее, но такие вещи, как эти, - это боль в ***. –

8

У меня была аналогичная проблема. Запуск mvn eclipse:clean, а затем mvn eclipse:eclipse помог.

+1

Я уже пробовал это, и это не помогает –

+0

исправил его для меня, спасибо –

+0

все еще работал как шарм! спасибо! – Nigul

7

У меня была схожая проблема. Плагин Eclipse для maven предполагает, что Eclipse имеет собственную поддержку AspectJ. Поэтому вам нужно сказать, что у вас их нет (или расскажите, какая у вас версия). Добавление

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

в <build><plugins> секции должно помочь.

+0

это решило мою проблему, даже не обновив плагин 2.8 maven-eclipse. Благодаря! – guido

+0

Хороший! Не знаю, почему этот ответ здесь внизу.Это единственный реальный ответ на вопрос на странице! :) – Steve

1

Вы пытались использовать m2eclipse? В моем опыте он имеет гораздо лучшие результаты.

Смежные вопросы