java库web3j的Gradle插件(Solidity开发以太坊智能合约)

发布时间:2019-11-18 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了java库web3j的Gradle插件(Solidity开发以太坊智能合约)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

web3j Gradle插件是从SolidITy智能合约生成web3j Java封装的构建工具。它通过添加可以独立运行的特定任务,顺利地与项目的构建生命周期集成。

插件配置

开始之前,如果计算机中尚未安装Solidity编译器,则需要安装它。

使用buildscript约定

要使用旧的Gradle buildscript约定安装web3j插件,应该将以下内容添加到构建文件的第一行(目前只有Gradle支持发行版本,而不是SNAPSHOT):

buildscript {     repositories {         mavenCentral()     }     dePEndencies {         classpath 'org.web3j:web3j-gradle-plugin:0.1.6'     } }  apply plugin: 'web3j'

使用插件DSL

或者,如果你使用的是更现代的插件DSL,请将以下行添加到你的构建文件中:

plugins {     id 'org.web3j' version '0.1.6' }

然后运行包含Solidity智能合约的项目:

./gradlew build

应用插件后,生成代码的基本目录(默认为$buildDir/generated/source/web3j)将包含每个集的目录(默认为maintest),其中包含智能合约封装器的Java类。

代码生成

web3j DSL允许配置生成的代码,例如:

web3j {     generatedPackageName = 'com.mycompany.{0}'     generateDFilesBaseDir = "$buildDir/custom/destination"     excludedContracts = ['Ownable']     useNativeJavaTypes = false }

DSL接受的属性如下表所示:

java库web3j的Gradle插件(Solidity开发以太坊智能合约)

generatedPackageName被评估为接受大括号({0})之间的单个参数的消息格式字符串,允许使用合约名称格式化生成的值。为方便起见,当应用于Java包名称时,它将转换为小写。

例如,在一个具有组com.mycompany的项目将generatedPackageName设置为${group}.{0},那名为MyToken.sol的Solidity智能合约将被在com.mycompany.mytoken包中生成。

此外,默认值包含${group}属性,该属性对应于项目中的组(例如com.mycompany)。如果项目未定义组属性,则生成的包名称将为org.web3j.{0}

请注意,消息格式参数不是Gradle属性,不应以$开头。

来源设置

默认情况下,$PRojectDir/src/main/solidity中的所有.sol文件都将由插件处理。要指定和添加不同的来源,请使用sourceSets DSL:

sourceSets {     main {         solidity {             srcDir {                  "my/custom/path/to/solidity"               }         }     } }

检查Solidity Plugin文档以配置智能合约源代码目录。

生成的智能合约封装器Java代码的输出目录将自动添加到你的构建中。

插件任务

Java插件使用基于每个源的命名约定(即compileJavacompileTestJava)向项目构建添加任务。

类似地,Solidity插件将为项目主源添加generateContractWrappers任务,并为每个剩余的源(例如test)添加generate[SourceSet]ContractWrappers

要获取所有已添加任务的列表和说明,请运行以下命令:

./gradlew tasks --all

更多的信息

有关web3j的更多信息,请参阅web3j主页中文版

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

  • java以太坊开发教程,主要是针对java和andROId程序员进行区块链以太坊开发的web3j详解。
  • java比特币开发教程,本课程面向初学者,内容即涵盖比特币的核心概念,例如区块链存储、去中心化共识机制、密钥与脚本、交易与UTXO等,同时也详细讲解何在Java代码中集成比特币支持功能,例如创建地址、管理钱包、构造裸交易等,是Java工程师不可多得的比特币开发学习课程。

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

脚本宝典总结

以上是脚本宝典为你收集整理的java库web3j的Gradle插件(Solidity开发以太坊智能合约)全部内容,希望文章能够帮你解决java库web3j的Gradle插件(Solidity开发以太坊智能合约)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。