2016-05-30 189 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

相关问题