我问了一个问题here,我想我可能已经找到了这个问题的根源。我有一个使用数据源net.sourceforge.jtds.jdbc.Driver
的Spring Boot应用程序,应该由Spring Boot 2.0.2与spring-boot-starter-jpa
一起传递。但是,当我运行
jar tf my.jar | grep jtds
未找到驱动程序类(服务器上没有Maven可执行文件来列出类路径)。我所做的检查类路径的所有操作均反映出该jar不存在。
我已经在两种情况下做到了这一点:1)当我没有明确将jar添加到pom时,我在上一篇文章中报告了错误。 2)当我执行明确地将其添加到pom时,出现此错误:
java.lang.IllegalStateException: Cannot load driver class: net.sourceforge.jtds.jdbc.Driver
有人可以告诉我怎么回事吗?我很困惑为什么找不到和加载该类。
答案 0 :(得分:0)
请注意,在Spring Boot Parent POM中,jtds dependency is only included in test
scope。
如果您还想在生产代码中使用这种依赖关系的类,请将Maven scope
更改为compile
。
答案 1 :(得分:0)
好的,通过添加具有runtime
范围的依赖关系解决了该问题。
答案 2 :(得分:0)
在包装了jar的子pom中,您应该 spring-boot-maven-plugin。和依赖性如下:
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
</dependency>
在父pom中:
<dependency>
<groupId>net.sourceforge.jtds</groupId>
<artifactId>jtds</artifactId>
<version>${jtds.version}</version>
</dependency>