这篇文章给大家介绍java中Gradle插件如何使用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
在开始之前,如果计算机中尚未安装Solidity编译器,则需要安装它。
要使用旧的Gradle buildscript
约定安装web3j插件,应该将以下内容添加到构建文件的第一行(目前只有Gradle支持发行版本,而不是SNAPSHOT):
buildscript { repositories { mavenCentral() } dependencies { classpath 'org.web3j:web3j-gradle-plugin:0.1.6' } } apply plugin: 'web3j'
或者,如果你使用的是更现代的插件DSL,请将以下行添加到你的构建文件中:
plugins { id 'org.web3j' version '0.1.6' }
然后运行包含Solidity智能合约的项目:
./gradlew build
应用插件后,生成代码的基本目录(默认为$buildDir/generated/source/web3j
)将包含每个源集的目录(默认为main
和test
),其中包含智能合约封装器的Java类。
web3j
DSL允许配置生成的代码,例如:
web3j { generatedPackageName = 'com.mycompany.{0}' generatedFilesBaseDir = "$buildDir/custom/destination" excludedContracts = ['Ownable'] useNativeJavaTypes = false }
DSL接受的属性如下表所示:
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插件使用基于每个源的命名约定(即compileJava
,compileTestJava
)向项目构建添加任务。
类似地,Solidity插件将为项目主源添加generateContractWrappers
任务,并为每个剩余的源(例如test
)添加generate[SourceSet]ContractWrappers
。
要获取所有已添加任务的列表和说明,请运行以下命令:
./gradlew tasks --all
关于java中Gradle插件如何使用就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。