在进程资源阶段(groovy脚本)无法从maven依赖项加载驱动程序类

时间:2013-04-03 09:11:56

标签: maven jdbc groovy

我已经开始处理在 process-resources 阶段运行的脚本(不是我的想法,当我得到它时就是这样)。它执行sql脚本来清​​理db。我需要将它从命令行工具迁移到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阶段问题。更改标题以反映该内容。

1 个答案:

答案 0 :(得分:0)

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

为此,我相信您需要将此jar文件作为依赖项添加到您的某个插件中。请参阅maven书中的这些信息:

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

请注意,我没有尝试过,我不确定这是否有效,但这可以作为一种可能的解决方案。