【问题标题】:Gradle: JDBC driver not compiled into JARGradle:未编译成 JAR 的 JDBC 驱动程序
【发布时间】:2014-07-30 14:09:36
【问题描述】:

我有一个模块 build.gradle 文件,如下所示:

apply plugin: 'java'

sourceCompatibility = 1.5
version = '1.0'

repositories {
    mavenCentral()
}

dependencies {
    testCompile group: 'junit', name: 'junit', version: '4.11'
    compile 'mysql:mysql-connector-java:5.1.6'
}

我也有这样的人工制品:

当我构建这个工件时,我的类包括在内,但 MySQL 驱动程序不包括在内。执行时,找不到 MySQL 驱动程序类。如何构建以便我的 JAR 工件(用作库) c包含MySQL JDBC驱动?

【问题讨论】:

  • 你是如何运行应用程序的?您需要将 MySQL 驱动程序放在类路径中。将此行添加到您的依赖项:runtime "mysql:mysql-connector-java:5.1.6"

标签: java jdbc gradle


【解决方案1】:

在 Gradle 和 IntelliJ 中配置它是两件不同的事情。在 Gradle 中创建 fat Jar 最直接的方法是:

jar {
    from { configurations.runtime.collect { it.directory ? it : zipTree(it) } }
}

PS:合并罐子可能会导致问题。在大多数情况下,不应该这样做,尤其是对于图书馆。

【讨论】:

  • 彼得,你是专家。把它们放在单独的罐子里怎么样。我的建议会奏效吗?
  • 绝对应该是@​​987654322@,但这不会改变任何基本的东西。即使使用compile,驱动程序也将位于运行时类路径中。
猜你喜欢
  • 2016-03-18
  • 2015-12-14
  • 2018-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-26
相关资源
最近更新 更多