【发布时间】: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