m2eclipse误报”Missing artifact”
m2eclipse报告"Missing artifact XXX:XXX",但实际上maven repository里却有这个artifact,这是为什么? 先说下后果:误报也可能意味着maven解析dependency失败,导致eclipse project的build path里丢失很多库,最终结果就是是在eclipse里无法运行main程序或jetty/tomcat. 而如果在eclipse外面通过maven命令来编译打包程序,却不会有问题,这是为什么? 以下两个因素结合起来可能导致这样的问题出现: 1. maven repository中某些artifact没有pom文件 2. 你的外部maven程序是maven2 maven2对"某些artifact没有pom文件"这种事比较能忍,所以打包仍能成功;但m2eclipse总是使用maven3来做依赖管理(即使你让它指向了外部的maven2),而maven3不能忍受“没有pom文件”. 当m2eclipse发现有东西让它不能忍时,就会乱报这个丢失那个没有之类的。 一个常见的“没有pom文件”的artifact是opensymphony-quartz, 官方maven repository中就没有这个pom. 临时的解决办法是搞一个pom文件丢到maven repository中,如 引用 I finally found a workaround. It is surely a bug in m2eclipse, however the problem disappeared when I added quartz-1.6.0.pom next to quartz-1.6.0.jar in .m2\repository\opensymphony\quartz\1.6.0\ The pom is not present at …