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插件无法下载对应的文件。手动执行此操作后,插件会找到二进制文件并跳过下载它们。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...