djWann
djWann

Reputation: 2127

How to add a local jar dependency to another dependency in gradle?

The jar amazon-kinesis-connectors is using amazon-kinesis-client. I want to change this dependency to a local custom jar:

dependencies {
    compile ('com.amazonaws:amazon-kinesis-connectors:1.2.0'){
        exclude group: "com.amazonaws", module: "amazon-kinesis-client"
    }
    compile files('libs/amazon-kinesis-client-1.6.3.jar')
//...
}

It compiles ok, but when I'm running the code I get java.lang.NoClassDefFoundError: com/amazonaws/services/kinesis/clientlibrary/interfaces/IRecordProcessorFactory. Is there a way to do this dependency management in gradle?

As environment I'm using:

Edit:

dependency graph in intellij: enter image description here

Running using a gradle task:

task run_app(type:JavaExec) {
    main = 'org.main.RunApp'
    classpath = sourceSets.main.runtimeClasspath
}

Upvotes: 1

Views: 213

Answers (1)

Sangram Jadhav
Sangram Jadhav

Reputation: 2488

try below gradle configuration

dependencies {
    compile ('com.amazonaws:amazon-kinesis-connectors:1.2.0'){
        exclude group: "com.amazonaws", module: "amazon-kinesis-client"
    }
    compile files('libs/amazon-kinesis-client-1.6.3.jar')
    runtime files('libs/amazon-kinesis-client-1.6.3.jar')
    //...
}

or you can use application plugin to create executable jar

https://docs.gradle.org/current/userguide/userguide_single.html#application_plugin

Upvotes: 1

Related Questions