0

我在本地 mavel 存储库中以 jar 的形式安装了我项目的常用功能的工件,我们将其称为 common.jar。现在我想在我的结构链代码中使用这些函数。我在链码的 gradle 构建文件中添加了依赖项,Intellij 可以毫无问题地构建链码。我现在尝试将链代码部署到结构样本的测试网络。IE

peer lifecycle chaincode install chaincode.tar.gz

这将在作为结构对等节点的 docker-container 内启动 gradle。然后这个 gradle 实例告诉我它找不到我的 common.jar。我怀疑docker容器内的gradle无法访问jar所在的本地maven repo。我对 docker 配置非常陌生,并且结构示例网络配置非常庞大。如何使我的本地 maven 存储库在 dockered peer 中可用?

4

1 回答 1

1

有几种方法可以像这样处理 3rd 方依赖项。一些更适用于开发环境 - 在部署到生产环境时请记住这一点。

  1. 虽然这不是您具体要求的,但一种选择是将模块发布到存储库。更适用于生产环境。

  2. 您可以创建一个 'uber-jar' 或一组 JAR 文件并将它们放入链代码包中。对等点实际构建代码不是必需的。事实上,将代码预先构建到一个或多个 JAR 中实际上更好。您可以获得更多可复制的一致构建。查看此参考以获取有关如何执行此操作的详细信息

  3. 我们在开发新版本的链代码库本身时使用的一个选项是将您的模块发布到链代码目录本身的存储库中。然后在您的构建 gradle 中引用它。这是我们为此使用的脚本。应该可以在这里制作类似的东西。

于 2021-10-18T08:57:34.343 回答