Затмение Maven не добавляет зависимости
У меня есть следующий фрагмент в моем pom.xml(Полный pom, прикрепленный ниже, который может быть выполнен)
<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 файлов. Это просто рутина, которая меня озадачивает.
Может кто-нибудь сказать мне, что здесь происходит не так?
ОБНОВЛЕНИЕ 1: Я использую плагин maven eclipse Версия: 2.7
ОБНОВЛЕНИЕ 2: Просто используйте pom ниже и выполните 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>
Ответы
Ответ 1
Я просто попытался воспроизвести проблему и... не мог. Это .classpath
я получаю после добавления aspectj: aspectjrt: jar: 1.5.3 зависимость от только что созданного проекта:
<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? Вы можете показать свою конфигурацию?
Ответ 2
У меня была аналогичная проблема. Выполняется mvn eclipse:clean
, а затем mvn eclipse:eclipse
.
Ответ 3
У меня была схожая проблема. Плагин Eclipse для maven предполагает, что Eclipse имеет собственную поддержку AspectJ. Поэтому вам нужно сказать, что у вас их нет (или расскажите, какая у вас версия). Добавление
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<ajdtVersion>none</ajdtVersion>
</configuration>
</plugin>
to <build>
<plugins>
должен помочь.
Ответ 4
Вы пытались использовать m2eclipse вместо этого? Он имеет тенденцию давать гораздо лучшие результаты в моем опыте.