2016-05-30 192 views
1

罐子亞馬遜kinesis連接器正在使用亞馬遜kinesis客戶端。我想改變這種依賴於當地的習俗罐子:如何將本地jar依賴項添加到gradle中的其他依賴項?

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') 
//... 
} 

它編譯好了,但是當我運行代碼,我得到java.lang.NoClassDefFoundError:COM/amazonaws /服務/室壁運動/ clientlibrary/interfaces/IRecordProcessorFactory。有沒有辦法在gradle中執行這種依賴管理?我使用

由於環境:

  • gradle這個2.13
  • IntelliJ IDEA的CE 2006.1
  • 的Java 1.8

編輯:在的IntelliJ

依賴圖: enter image description here

使用gradle這個任務運行:

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

這意味着,罐子不包含在運行時包中。你能說出是否是戰爭或罐子的其他包裝以及包裝是如何完成的。另外告訴我你是如何執行/運行 –

+0

@SangramJadhav:我正在使用gradle build來創建一個jar。我在答案中編輯了其他細節。 – djWann

回答

1

試試下面gradle這個配置

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') 
    //... 
} 

,或者您可以使用應用程序插件來創建可執行的JAR

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

相關問題