编写依赖于 CorDapp 中定义的 类 的独立 Corda 客户端

Writing a standalone Corda client that depends on classes defined in a CorDapp

我正在编写一个 Corda RPC 客户端,它依赖于在单独的 CorDapp 中定义的状态 类。

当 运行 客户端时,如何将这些 类 作为依赖项包括在内?

您需要将 CorDapp JAR 作为依赖项包含在您定义 RPC 客户端的项目中:

  • 创建您的客户端将依赖的 CorDapp JAR。您可以通过 运行 gradlew deployNodes 在定义了 deployNodes 任务的项目中执行此操作,并从节点的插件文件夹之一中提取 CorDapp JAR
  • 将 JAR 复制到 RPC 客户端项目中的某个位置(例如 ./lib/cordapp-name.jar
  • 在您的 build.gradle 文件中将 JAR 引用为依赖项,使用语法 cordapp files('lib/yo.jar')。确保正确设置相对路径(例如,如果 build.gradle 文件嵌套在下一层,则上面的内容将变为 cordapp files('../lib/yo.jar')

目前无法从deployNode引用以这种方式添加的CorDapp JAR依赖。这将在 Corda 的未来版本中解决。

您需要将相关的 CorDapp JAR 作为依赖项添加到包含您的 RPC 客户端的项目中。首先将您的 CorDapp JAR 复制到您的 RPC 客户端项目中的一个文件夹中。然后在 RPC 客户端的 build.gradle 文件中(确保这是 clients 目录中的文件或 RPC 客户端项目的根目录),在 dependencies{} 块中,添加以下行:

  • compile fileTree(include: ['*.jar'], dir: '../cordapp-jars')

确保将目录路径替换为指向您放置 CorDapp JAR 的文件夹的路径。最后,在您的 RPC 客户端中,导入必要的 Corda 状态或流。