在部署的项目中找不到pom文件中列出的依赖项

时间:2019-03-28 18:08:20

标签: maven spring-boot

我问了一个问题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

有人可以告诉我怎么回事吗?我很困惑为什么找不到和加载该类。

3 个答案:

答案 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>