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 中的文件。
我正在使用 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 中的文件。