Maven eclipse不会添加依赖项

时间:2010-03-30 10:28:22

标签: java maven-2

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

4 个答案:

答案 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?根据我的经验,它往往会产生更好的结果。