Pijusn
Pijusn

Reputation: 11293

Gradle: JDBC driver not compiled into JAR

I have a module build.gradle file that looks like this:

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'
}

I also have an artefact set up like this:

Screenshot

When I build this artifact, my classes are included but MySQL driver is not. When executed, MySQL driver class is not found. How do I build so that my JAR artifact (used as a library) ccontains MySQL JDBC driver?

Upvotes: 0

Views: 1498

Answers (1)

Peter Niederwieser
Peter Niederwieser

Reputation: 123900

Configuring this in Gradle and IntelliJ is two different things. The most direct way to create a fat Jar in Gradle is:

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

PS: Merging Jars can cause problems. In most cases it should not be done, in particular for a library.

Upvotes: 1

Related Questions