Java Corda RPC客户端外部依赖项

Java Corda RPC客户端外部依赖项,java,jar,executable-jar,corda,Java,Jar,Executable Jar,Corda,假设我有一个用于corda的小型RPC客户端应用程序,应该将其上载到节点中,并调用它在节点上执行一些实用程序工作。 在我的实用程序RPC客户端的build.gradle文件中,我只有以下依赖项cordaCompile“$corda\u release\u组:corda RPC:$corda\u release\u version”,我的JAR任务如下所示 jar { version = '' baseName = 'rpc_utility' duplicatesStrat

假设我有一个用于corda的小型RPC客户端应用程序,应该将其上载到节点中,并调用它在节点上执行一些实用程序工作。 在我的实用程序RPC客户端的
build.gradle
文件中,我只有以下依赖项
cordaCompile“$corda\u release\u组:corda RPC:$corda\u release\u version”
,我的JAR任务如下所示

jar {
    version = ''
    baseName = 'rpc_utility'
    duplicatesStrategy = DuplicatesStrategy.EXCLUDE
    manifest {
        attributes 'Main-Class': 'com.example.rpcclient.MainKt'
    }
    zip64=true

    from { (configurations.compile).collect { it.isDirectory() ? it : zipTree(it) } } 
}
但当我创建jar时,它会生成58mb的jar文件,其中包含Corda的所有依赖项,这些依赖项已经存在于节点中,并打包在
Corda.jar
文件中。cordapps可以使用这些库,而无需将它们放在JAR文件中

现在的问题是,我应该如何配置我的jar任务,以及我应该在其中包含什么来告诉Java它需要的所有依赖项都在那里,在corda.jar文件的同一个文件夹中


另外,我也尝试像现在一样创建一个胖罐子,然后用Proguard缩小它,但是即使在一个很长的Proguard规则列表之后,我仍然有错误,因为Proguard似乎删除了Corda需要的很多文件,所以这似乎不是一个好的解决方案,即使我成功了,我也会得到一个~20 MB的文件,就我实际拥有的几行代码而言……

客户机jar的大小差不多。它不仅包括Corda的依赖项,还包括实际的CorDapp JAR(合同和工作流)。原因是:

  • RPC客户端需要与Corda节点通信,因此它需要Corda依赖项
  • 它还需要了解您的CorDapps,因为您的控制器将直接调用流