`
guoyiqi
  • 浏览: 962131 次
社区版块
存档分类
最新评论

使用Maven和Mybatis开发时,遇到“java.sql.SQLException: No suitable driver found for http://maven.apache.org”

 
阅读更多

今天使用Maven和Mybatis,在Eclipse上开发j2ee的程序。本人刚学Mybatis,对Maven还算熟悉,看过书,用的时间不长。本想试下Mybatis的selectList,结果程序编译通过,运行时报错:


郁闷!

之前见过SQLException报错,说ClassNotFound的或者链接打不开的,可就是没见过

java.sql.SQLException: No suitable driver found for http://maven.apache.org

的,我重新把java代码看了一遍,并没有在java代码中发现http://maven.apache.org,使用Maven的mvn clean compile一遍,发现问题依旧,猛然心想,去target里看看Mybatis的configuration配置文件吧,结果找到原因了!

我的Mybatis的配置文件源码如下:


可经过Maven的mvn compile之后,变成了:


发现问题了吧?

是的,maven把Mybatis的${url}替换成http://maven.apache.org了!

为什么呢?

在maven的compile之前,有一个阶段(phase)是process-resources,这时resources插件会把src/main/resources里的xml用到的${XXX}变量替换成设定的值,而url值碰巧在项目pom文件中定义了:


又碰巧,我把Mybatis的配置文件放到src/main/resouces目录底下了……然后悲剧就发生了。


如何解决:

不让maven过滤resources目录下的Mybatis配置文件,及其mapper文件!

修改工程的POM文件:


让maven不过滤mybatis文件夹下的东西就可以了。

注意:我的mybatis的配置文件被我放到src/main/resouces/mybatis文件夹下了。



分享到:
评论
1 楼 mojunbin 2012-05-11  
哈哈.这个问题...比较隐晦啊.

相关推荐

Global site tag (gtag.js) - Google Analytics