web3j maven插件用于基于solidity智能合约文件创建java类。

用法

插件的基本配置将从src/main/resources获取solidity文件,并将java类生成到src/main/java文件夹中。

<build><plugins><plugin><groupId>org.web3j</groupId><artifactId>web3j-maven-plugin</artifactId><version>0.3.7</version><configuration><soliditySourceFiles/></configuration></plugin></plugins>
</build>

运行插件执行目标generate-sources

mvn web3j:generate-sources

配置

有几个变量用于选择solidity源文件,定义源目标路径或更改包名称。

image

outputDirectory的配置优先于sourceDestination

入门

创建一个标准的java maven项目。将以下<plugin>配置添加到pom.xml文件中:

<plugin><groupId>org.web3j</groupId><artifactId>web3j-maven-plugin</artifactId><version>0.3.7</version><configuration><packageName>com.zuehlke.blockchain.model</packageName><sourceDestination>src/main/java/generated</sourceDestination><nativeJavaType>true</nativeJavaType><outputFormat>java,bin</outputFormat><soliditySourceFiles><directory>src/main/resources</directory><includes><include>**/*.sol</include></includes></soliditySourceFiles><outputDirectory><java>src/java/generated</java><bin>src/bin/generated</bin><abi>src/abi/generated</abi></outputDirectory></configuration>
</plugin>

将你的Solidity合约文件添加到文件夹src/main/resources中。确保solidity文件以.sol结尾。

开始生成过程:

> mvn web3j:generate-sources[INFO] --- web3j-maven-plugin:0.1.2:generate-sources (default-cli) @ hotel-showcase ---
[INFO] process 'HotelShowCaseProxy.sol'
[INFO]  Built Class for contract 'HotelShowCaseProxy'
[INFO]  Built Class for contract 'HotelShowCaseV2'
[INFO]  Built Class for contract 'Owned'
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.681 s
[INFO] Finished at: 2017-06-13T07:07:04+02:00
[INFO] Final Memory: 14M/187M
[INFO] ------------------------------------------------------------------------Process finished with exit code 0

你可以在目录src/main/java/generated/中找到生成的java类。

下一步是与智能合约进行交互。请参阅web3j主页中文版的智能合约部署和交互。

有关多模块项目配置,请参阅@fcorneli的帖子。简而言之:要获取生成的java源文件,需要build-helper-maven-plugin配置。此外,多模块项目中需要${basedir}前缀。

======================================================================

分享一些以太坊、EOS、比特币等区块链相关的交互式在线编程实战教程:

  • java以太坊开发教程,主要是针对java和android程序员进行区块链以太坊开发的web3j详解。
  • python以太坊,主要是针对python工程师使用web3.py进行区块链以太坊开发的详解。
  • php以太坊,主要是介绍使用php进行智能合约开发交互,进行账号创建、交易、转账、代币开发以及过滤器和交易等内容。
  • 以太坊入门教程,主要介绍智能合约与dapp应用开发,适合入门。
  • 以太坊开发进阶教程,主要是介绍使用node.js、mongodb、区块链、ipfs实现去中心化电商DApp实战,适合进阶。
  • C#以太坊,主要讲解如何使用C#开发基于.Net的以太坊应用,包括账户管理、状态与交易、智能合约开发与交互、过滤器和交易等。
  • EOS教程,本课程帮助你快速入门EOS区块链去中心化应用的开发,内容涵盖EOS工具链、账户与钱包、发行代币、智能合约开发与部署、使用代码与智能合约交互等核心知识点,最后综合运用各知识点完成一个便签DApp的开发。
  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。
  • php比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解如何在Php代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Php工程师不可多得的比特币开发学习课程。
  • tendermint区块链开发详解,本课程适合希望使用tendermint进行区块链开发的工程师,课程内容即包括tendermint应用开发模型中的核心概念,例如ABCI接口、默克尔树、多版本状态库等,也包括代币发行等丰富的实操代码,是go语言工程师快速入门区块链开发的最佳选择。

汇智网原创翻译,转载请标明出处。这里是原文web3j的maven插件

java以太坊库web3j的maven插件相关推荐

  1. 以太坊java接口_java以太坊库web3j文档

    通过java打包以太坊智能合约 Web3j可以自动打包智能合同代码,以便在不脱离JVM的情况下进行以太坊智能合同部署和交互. 要打包代码,需要先编译智能合同: $ solc .sol --bin -- ...

  2. java 以太坊 智能合约_web3j教程:java使用web3j开发以太坊智能合约交易

    从广义上讲,有web3j支持三种类型的以太坊交易: 1.以太币从一方交易到另一方 2.创建一个智能合约 3.与智能合约交易 为了进行这些交易,必须有以太币(以太坊区块链的代币)存在于交易发生的以太坊账 ...

  3. 使用C# 和基于.Net的以太坊库Nethereum以太坊及智能合约交互实战篇(一)

    官网:Nethereum官网 Github地址:Github上的Nethereum库 简介: Nethereum是用于Ethereum的.Net集成库,可简化智能合约管理以及与以太坊节点的交互,无论这 ...

  4. java以太坊源码分析_以太坊区块链Java(EthereumJ)学习笔记:区块链结构-Go语言中文社区...

    本文对EthereumJ的区块链相关的代码做一个简单的介绍. 以太坊区块链 以太坊区块链是在Bitcoin区块链的基础上发展起来的.区块链的数据结构既保留了Bitcoin区块链验证数据的真实性和完整性 ...

  5. 以太坊中web3j调用公链超时问题,重构httpservice即可

    在学习使用java集成web3j调用eth公链出现以下问题:SocketTimeoutException异常,具体的异常错误就不截图了,主要是执行下面代码发送的 Web3j.build(new Htt ...

  6. Infura Http 客户端 以太坊 交易

    web3j Infura 模块提供了一个Infura Http 客户端(InfuraHttpService),它为Infura特定的Infura-Ethereum-Preferred-Client提供 ...

  7. web3j的Gradle插件(solidity以太坊智能合约)

    web3j Gradle插件是从Solidity智能合约生成web3j Java封装的构建工具.它通过添加可以独立运行的特定任务,顺利地与项目的构建生命周期集成. 插件配置 在开始之前,如果计算机中尚 ...

  8. 以太坊java开发指南_java以太坊开发库ethereumj

    EthereumJ是以太坊协议的纯Java实现.有关以太坊及其目标的高级信息,请访问ethereum.org,其 白皮书 提供了一个完整的概念的概述,和 黄皮书 一起提供了协议的正式定义. 我们尽可能 ...

  9. java开发以太坊应用的库ethereumj

    EthereumJ是以太坊协议的纯Java实现.有关以太坊及其目标的高级信息,请访问ethereum.org,其白皮书提供了一个完整的概念的概述,和黄皮书一起提供了协议的正式定义. 我们尽可能保持Et ...

最新文章

  1. 开源250FPS的人脸106特征点,3.3M模型
  2. Linux系统详解 系统的启动、登录、注销与开关机
  3. hive快还是mysql快_HBase相对Hive查询速度快的对比
  4. 浅谈身为小白学习Linux系统的四点实用建议
  5. jackson.ObjectMapper里enableDefaultTyping方法过期
  6. 经典算法笔记:无监督算法(聚类、降维)
  7. QPainter 的状态保存与恢复
  8. mongodb身份验证_MongoDB身份验证
  9. Java的编年史和低延迟
  10. 第一套数字电子计算机,计算机试题第一套
  11. 从0开始Vue2集成Bootstrap4(1)
  12. 《对Java的分析总结》-Java中的垃圾回收机制中的标记-清除算法 (五)
  13. UIActionSheet的最后一项点击失效
  14. Javascript访问Cookie的四个常用方法
  15. 日期转换 EEE MMM dd HH:mm:ss zzz yyyy
  16. python里面break放在哪_python中break怎么用
  17. python程序员面试宝典:12个Python程序员面试必备问题与答案
  18. ChatGPT 使用 强化学习:Proximal Policy Optimization算法(详细图解)
  19. aop - spring如何选择、创建代理bean
  20. 机器学习100天(三十七):037 朴素贝叶斯-挑个好西瓜!

热门文章

  1. 校招黑名单:好家伙,GitHub 上这个仓库火了!
  2. C++调用微软TTS实现文字有声阅读
  3. 玩转 adb- 基础篇(1)
  4. 2018java对笔记本配置要求_Revit对笔记本配置的要求
  5. 企服三会亮点抢先看,与1200位大咖一起洞见2019
  6. 关于cmd运行java文件问题的解决
  7. 简单的实现rgb与十六进制的相互转换
  8. 汉字,字符和细粒度子字符组成的联合嵌入
  9. 它不会火:为什么Flutter不是下一个流量?
  10. 2023年CMMI认证证书到期了怎么办?