用maven新建了一个查询数据库的项目,导入了mybatis依赖。
pom.xml
<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
写了测试类,确实可以从数据库中取到数据。
然后用maven install打包,获得jar。再在另一个工程里加入这个包,build path。
然后使用其中的方法,报找不到mybatis包的错误。
public class Test {
public static void main(String[] args) {
DataSource d=new DataSource();
}
}
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/ibatis/io/Resources
at com.sunyard.backer.SessionUtil.<clinit>(SessionUtil.java:21)
at com.sunyard.backer.controller.DataSource.<clinit>(DataSource.java:19)
at com.sunyard.test.Test.main(Test.java:7)
应该是maven打jar的时候依赖的包没有打进去吧?本来最开始是要打jar然后放在目录里在反射调用其获取数据的方法的,结果报错。然后尝试直接导入build path也报错。请问maven项目该如何打包才可以把pom.xml中依赖的包都打进去?
原来打出来有两个jar包,一个是带依赖的,一个是不带依赖的。。。
用带依赖的就可以了。
粗心了。。。