Corda:将本地 javascript 库导入节点

Corda: Import a local javascript library into a node

我正在使用 J2V8 库来 运行 cordapp 中的一些 javascript 函数,但是在 [=29] 期间我无法访问 js 文件(或引用它们) =]time,因为在构建项目时,js 代码被复制到 build/resources 文件夹中,无法从任何 运行ning 节点访问(据我所知)。

我意识到 我需要将 js 源代码包含到 corda.jar 文件 中,在我 运行 gradle deployNodes 时生成。

我尝试将以下内容添加到 build.gradle 文件中:

jar {
    baseName = 'something'
    from('src/main/resources/js_library') {
        include '*.js'
    }
}

但这并没有解决我的问题。我是否需要以某种方式扩展 net.corda.plugins 中的某些任务?或者有没有办法在 cordapp 运行ning 后访问 build/resource 文件夹?

corda.jar 是您的应用程序 运行 on/against 的节点 JAR,它不打算为应用程序修改。

如果您应用正确的 gradle 插件(V1 为 cordformation,更高版本为 cordapp),"jar" 任务应该会自动生成您自己的 CorDapp JAR。这个 JAR 将位于类路径中,并包含资源目录中的所有文件。例如,"src/main/resources/js_library" 将在 CorDapp JAR 的根目录中可用,并且可以在 运行 时间内从您的 CorDapp 中任何 类 的类加载器直接访问。查看答案 here 以了解如何访问 JAR 中的文件。