目次
spring tools suite からH2databaseとmybatisを用いたmavenプロジェクトのJunitテストをしようとした時に以下のエラーが発生
事象
spring tools suite からH2databaseとmybatisを用いたmavenプロジェクトのJunitテストをしようとした時に以下のエラーが発生
エラー内容
Caused by: java.lang.ClassNotFoundException: org.h2.DriverCaused by: java.lang.ClassNotFoundException: org.h2.Driver at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2131) ... 50 common frames omitted
原因
H2データベースのライブラリとのパスが繋がっていないため発生
解決策
pom.xmlのprofilesにcom.h2databaseを設定する。
<profiles>
<profile>
<id>local</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<resource.directory>src/main/resources</resource.directory>
<buildFinalName>${project.artifactId}-${project.version}</buildFinalName>
</properties>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>test-server</id>
<properties>
<resource.directory>${basedir}/configs/test-server/resources</resource.directory>
<buildFinalName>${project.artifactId}-${project.version}-test-server</buildFinalName>
</properties>
</profile>
<profile>
<id>production-server</id>
<properties>
<resource.directory>${basedir}/configs/production-server/resources</resource.directory>
<buildFinalName>${project.artifactId}-${project.version}-production-server</buildFinalName>
</properties>
</profile>
</profiles>