java WEB3J Maven插件的问题,它无法找到solidity编译器

4nkexdtk  于 2023-04-19  发布在  Java
关注(0)|答案(1)|浏览(424)

我使用web 3 j 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>
uajslkp6

uajslkp61#

我们遇到了同样的问题。我们通过手动执行maven插件的一些步骤来解决它:
1.转到这里发布的solidity版本列表:https://internal.services.web3labs.com/api/solidity/versions/
1.将显示的json保存为~/.web3j/solc/中的releases.json
1.手动搜索二进制文件列表,下载你需要的二进制文件(即win/linux/mac)。
1.将所选的二进制文件保存在一个子文件夹中,并使用版本作为其名称。例如,如果您需要版本0.4.25,请创建一个相应的文件夹(~/.web3j/solc/0.4.25/)并将二进制文件放在那里。
1.重新运行您的maven构建。
不知何故,问题是maven插件无法下载相应的文件。手动完成后,插件会找到二进制文件并跳过下载它们。

相关问题