溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

java中Gradle插件如何使用

發(fā)布時(shí)間:2021-07-01 15:40:37 來(lái)源:億速云 閱讀:187 作者:Leah 欄目:互聯(lián)網(wǎng)科技

這篇文章給大家介紹java中Gradle插件如何使用,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

插件配置

在開(kāi)始之前,如果計(jì)算機(jī)中尚未安裝Solidity編譯器,則需要安裝它。

使用buildscript約定

要使用舊的Gradle buildscript約定安裝web3j插件,應(yīng)該將以下內(nèi)容添加到構(gòu)建文件的第一行(目前只有Gradle支持發(fā)行版本,而不是SNAPSHOT):

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

apply plugin: 'web3j'
使用插件DSL

或者,如果你使用的是更現(xiàn)代的插件DSL,請(qǐng)將以下行添加到你的構(gòu)建文件中:

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

然后運(yùn)行包含Solidity智能合約的項(xiàng)目:

./gradlew build

應(yīng)用插件后,生成代碼的基本目錄(默認(rèn)為$buildDir/generated/source/web3j)將包含每個(gè)源集的目錄(默認(rèn)為maintest),其中包含智能合約封裝器的Java類。

代碼生成

web3j DSL允許配置生成的代碼,例如:

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

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

java中Gradle插件如何使用

generatedPackageName被評(píng)估為接受大括號(hào)({0})之間的單個(gè)參數(shù)的消息格式字符串,允許使用合約名稱格式化生成的值。為方便起見(jiàn),當(dāng)應(yīng)用于Java包名稱時(shí),它將轉(zhuǎn)換為小寫(xiě)。

例如,在一個(gè)具有組com.mycompany的項(xiàng)目將generatedPackageName設(shè)置為${group}.{0},那名為MyToken.sol的Solidity智能合約將被在com.mycompany.mytoken包中生成。

此外,默認(rèn)值包含${group}屬性,該屬性對(duì)應(yīng)于項(xiàng)目中的組(例如com.mycompany)。如果項(xiàng)目未定義組屬性,則生成的包名稱將為org.web3j.{0}。

請(qǐng)注意,消息格式參數(shù)不是Gradle屬性,不應(yīng)以$開(kāi)頭。

來(lái)源設(shè)置

默認(rèn)情況下,$projectDir/src/main/solidity中的所有.sol文件都將由插件處理。要指定和添加不同的來(lái)源,請(qǐng)使用sourceSets DSL:

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

檢查Solidity Plugin文檔以配置智能合約源代碼目錄。

生成的智能合約封裝器Java代碼的輸出目錄將自動(dòng)添加到你的構(gòu)建中。

插件任務(wù)

Java插件使用基于每個(gè)源的命名約定(即compileJava,compileTestJava)向項(xiàng)目構(gòu)建添加任務(wù)。

類似地,Solidity插件將為項(xiàng)目主源添加generateContractWrappers任務(wù),并為每個(gè)剩余的源(例如test)添加generate[SourceSet]ContractWrappers。

要獲取所有已添加任務(wù)的列表和說(shuō)明,請(qǐng)運(yùn)行以下命令:

./gradlew tasks --all

關(guān)于java中Gradle插件如何使用就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI