微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

WEB3J Maven Plugin的问题,找不到solidity编译器

如何解决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插件的一些步骤解决了:

  1. 转到此处发布的 Solidity 版本列表:https://internal.services.web3labs.com/api/solidity/versions/
  2. 将显示的 json 保存为 releases.json 中的 ~/.web3j/solc/
  3. 手动搜索二进制文件列表,下载您需要的二进制文件(即 win/linux/mac)。
  4. 使用版本作为名称将所选二进制文件保存在子文件夹中。例如,如果您需要版本 0.4.25,请创建一个相应的文件夹 (~/.web3j/solc/0.4.25/) 并将二进制文件放在那里。
  5. 重新运行您的 Maven 构建。

不知怎么的,问题是maven插件无法下载对应的文件。手动执行此操作后,插件会找到二进制文件并跳过下载它们。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?