如何解决WEB3J Maven Plugin的问题,找不到solidity编译器
我使用 web3j maven 插件自动生成智能合约 Java 代理。
但是我遇到了问题,找不到 solidity 编译器版本。
[INFO]
[INFO] --- web3j-maven-plugin:4.8.2:generate-sources (default) @ web3j-client-lib ---
[INFO] solidity: adding to process 'DZPayments.sol'
[INFO] solidity: adding to process 'Migrations.sol'
[INFO] solidity: adding to process 'Proxy.sol'
[INFO] solidity: adding to process 'Storage.sol'
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 26.928 s
[INFO] Finished at: 2021-06-18T10:50:37+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to get solidity version from server
有人有想法吗?
我仅使用默认配置并将 SOL 文件复制到 src/main/resources
这是我的插件配置(最简单的!):
<plugin>
<groupId>org.web3j</groupId>
<artifactId>web3j-maven-plugin</artifactId>
<version>4.8.2</version>
<configuration>
<soliditySourceFiles/>
</configuration>
</plugin>
我在 4.8.4 版本中使用了以下两个依赖项,但我也使用 5.0.0 对其进行了测试,结果相同:
<dependency>
<groupId>org.web3j</groupId>
<artifactId>abi</artifactId>
<version>4.8.4</version>
</dependency>
<dependency>
<groupId>org.web3j</groupId>
<artifactId>core</artifactId>
<version>4.8.4</version>
</dependency>
解决方法
没人知道我为什么会得到这个:
[ERROR] Failed to get solidity version from server
,
我们遇到了同样的问题。我们通过手动执行maven插件的一些步骤解决了:
- 转到此处发布的 Solidity 版本列表:https://internal.services.web3labs.com/api/solidity/versions/。
- 将显示的 json 保存为
releases.json
中的~/.web3j/solc/
。 - 手动搜索二进制文件列表,下载您需要的二进制文件(即 win/linux/mac)。
- 使用版本作为名称将所选二进制文件保存在子文件夹中。例如,如果您需要版本
0.4.25
,请创建一个相应的文件夹 (~/.web3j/solc/0.4.25/
) 并将二进制文件放在那里。 - 重新运行您的 Maven 构建。
不知怎么的,问题是maven插件无法下载对应的文件。手动执行此操作后,插件会找到二进制文件并跳过下载它们。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。