【问题标题】:Cannot load driver class from maven dependency during process-resource phase (groovy script)在进程资源阶段(groovy 脚本)无法从 Maven 依赖项加载驱动程序类
【发布时间】:2013-04-03 09:11:55
【问题描述】:

我已经开始编写一个在 process-resources 阶段运行的脚本(不是我的想法,当我得到它时就是这样)。它执行 sql 脚本来清理数据库。我需要将它从命令行工具迁移到 Jdbc。

问题是当我尝试加载驱动程序时,我得到:

java.lang.ClassNotFoundException: net.sourceforge.jtds.jdbc.Driver

我尝试过使用其他数据库系统的驱动程序,但异常总是相同的。驱动程序在 Eclipse 中作为 maven 依赖项可见,它们的范围是“编译”。

我尝试以两种方式加载它:

Class.forName("net.sourceforge.jtds.jdbc.Driver")
//and:
def sql = Sql.newInstance(url,user,pass,"net.sourceforge.jtds.jdbc.Driver")

我知道在构建阶段运行这样的脚本不是一个好习惯,但在那个时候仍然可以让这些类可见吗?

[编辑] 可以创建 Driver 类的对象,所以它似乎不是 maven 阶段的问题。更改标题以反映这一点。

【问题讨论】:

标签: maven jdbc groovy


【解决方案1】:

我猜您需要在构建阶段添加包含 net.sourceforge.jtds.jdbc.Driver 的 jar 作为依赖项。也就是说,不是构建依赖,而是构建阶段类路径中可用的东西。

为此,我相信您需要将此 jar 文件作为依赖项添加到您的插件之一。在 maven book 中查看此信息:

http://www.sonatype.com/books/mvnref-book/reference/_configuring_maven_plugins.html#_adding_plugin_dependencies

请注意,我还没有尝试过,我不确定这是否会奏效,但我认为这是一个可能的解决方案。

【讨论】:

    猜你喜欢
    • 2015-06-19
    • 2012-06-03
    • 2020-07-05
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 2014-04-15
    相关资源
    最近更新 更多