【问题标题】:JARs that Maven have downloaded to my local repository is included in classpath but not found?Maven 下载到我的本地存储库的 JAR 包含在类路径中但未找到?
【发布时间】:2012-04-02 23:04:30
【问题描述】:

我的项目中有许多 Maven 可以正确解析的依赖项。问题是它似乎没有找到 Maven 本身已经下载并很好地放入我的本地 .m2 存储库的 spring-context jar 文件。我的代码无法编译,这是我得到的错误消息:

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] /Users/kilroy/workspace/blogping-dist/blogping/src/main/java/com/vrutberg/blogping/web/BlogPingService.java:[21,1] cannot find symbol
symbol: class Component
@Component
[ERROR] /Users/kilroy/workspace/blogping-dist/blogping/src/main/java/com/vrutberg/blogping/web/BlogPingService.java:[22,1] cannot find symbol
symbol: class Scope
@Scope("request")

据我所知,它需要的 jar 文件包含在类路径中(使用 -X 开关调试 Maven):

[DEBUG]  /Users/kilroy/.m2/repository/org/springframework/spring-context/3.1.1.RELEASE/spring-context-3.1.1.RELEASE.jar

这是 jar 文件的正确位置。我通过代码中的这些注释引用了上述类(Component.class 和 Scope.cass):

@Component
@Scope("request")
@Path("/ping")
public class BlogPingService {

    @InjectParam
    private BlogPingList blogPingList;

    @Context

@Component 和 @Scope 注释位于 spring-context jar 中,如果我解压缩并搜索 Component.class 和 Scope.class 我会按预期找到它们:

pioneer:test kilroy$ find . -name Scope.class
./org/springframework/context/annotation/Scope.class
pioneer:test kilroy$ find . -name Component.class
./org/springframework/stereotype/Component.class

所以我不知道问题是什么。似乎 jar 文件已正确包含在类路径中,并且包含我需要的类。可能是什么问题?

链接到我的 pom.xml:http://pastebin.com/nsLp5VeU

【问题讨论】:

  • 您是否要运行单元测试?
  • 我有单元测试,但还没有那么远。它在到达单元测试之前编译代码失败。我会在原帖中附上编译错误。
  • 你愿意把你的 pom.xml 放上去吗?
  • 是的,当然,这里有一个链接。 pastebin.com/nsLp5VeU
  • 你的 pom.xml 看起来不错。检查 maven settings.xml - 特别是您定义的存储库。

标签: java maven dependencies classpath


【解决方案1】:

看起来很可疑,好像您忘记导入注释一样。

你的代码是否包含

import org.springframework.stereotype.Component;
import org.springframework.context.annotation.Scope;

(或适当的通配符导入)?

【讨论】:

  • 好吧,这很尴尬。我想我刚刚弄清楚出了什么问题。我对 Jersey JAR 也有类似的问题。在我将它们添加为用户库之前,Eclipse 无法在我的本地存储库中找到它们,我认为这就是这里发生的事情。因为 Eclipse 无论如何都找不到它们,所以我忽略了导入,当然如果我忽略导入,代码也不会编译。呃。谢谢大开眼界! :)
猜你喜欢
  • 1970-01-01
  • 2020-11-09
  • 1970-01-01
  • 2020-07-13
  • 2016-04-17
  • 1970-01-01
  • 1970-01-01
  • 2016-08-18
  • 1970-01-01
相关资源
最近更新 更多