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源文件,定義源目標路徑或更改包名稱。
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}
前綴。
安利2個java以太坊、比特幣區塊鏈相關的交互式在線編程實戰教程:
- java以太坊開發教程,主要是針對java和android程序員進行區塊鏈以太坊開發的web3j詳解。
- java比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈存儲、去中心化共識機制、密鑰與腳本、交易與UTXO等,同時也詳細講解如何在Java代碼中集成比特幣支持功能,例如創建地址、管理錢包、構造裸交易等,是Java工程師不可多得的比特幣開發學習課程。
匯智網原創翻譯,轉載請標明出處。這裏是原文web3j的maven插件