我的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依赖:树”,它列出了这个很好。
我没有任何花哨的设置来不编译任何java文件。这只是一个困扰我的常规pom。
有人可以告诉我这里出了什么问题吗?
更新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>
答案 0 :(得分:8)
我有类似的问题。运行mvn eclipse:clean
然后mvn eclipse:eclipse
有所帮助。
答案 1 :(得分:7)
我遇到过类似的问题。用于maven的Eclipse插件假设Eclipse有自己对AspectJ的支持。所以你需要告诉它你没有(或告诉它你有哪个版本)。添加
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<configuration>
<ajdtVersion>none</ajdtVersion>
</configuration>
</plugin>
到<build>
<plugins>
部分可以提供帮助。
答案 2 :(得分:4)
我只是试图重现这个问题而且......不能。这是我在将aspectj:aspectjrt:jar:1.5.3依赖项添加到新创建的项目后得到的.classpath
:
<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?你能展示你的配置吗?
答案 3 :(得分:1)
您是否尝试过使用m2eclipse?根据我的经验,它往往会产生更好的结果。