Java Gradle:JDBC驱动程序未编译到JAR中
我有一个模块Java Gradle:JDBC驱动程序未编译到JAR中,java,jdbc,gradle,Java,Jdbc,Gradle,我有一个模块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
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'
}
我还有一件像这样的艺术品:
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工件(用作库)
ccontains MySQL JDBC驱动程序?在Gradle和IntelliJ中配置此驱动程序是两件不同的事情。在Gradle中创建胖罐子最直接的方法是:
jar {
from { configurations.runtime.collect { it.directory ? it : zipTree(it) } }
}
PS:合并JAR可能会导致问题。在大多数情况下都不应该这样做,尤其是对于库。您是如何运行应用程序的?您需要将MySQL驱动程序放在类路径中。将这一行添加到您的依赖项:运行时“mysql:mysql连接器java:5.1.6”Peter,您是专家。把它们放在不同的罐子里怎么样。我的建议行得通吗?它肯定应该是运行时,但这不会改变任何基本的东西。即使使用
compile
,驱动程序也将位于运行时类路径上。