使用gradle生成protobuf


之前介紹的都是使用protoc工具進行protobuf代碼的生成,下面我們看下如何使用gradle插件進行proto文件的編譯和代碼生成。

protobuf-gradle-plugin

在google的github下有protobuf-gradle-plugin這個項目,這是用於生成protobuf的gradle官方插件(這個插件需要Gradle2.12版本以上),在gradle的build文件加上對應插件:

apply plugin: 'com.google.protobuf' buildscript { repositories { mavenCentral() } dependencies { classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.1' } } 

上面的插件將會添加extractIncludeProto(獲得依賴proto),extractProto(獲得編譯的proto文件),generateProto(編譯)任務,同時會將他們都配置進build,這樣系統構建時都會重新運行這些任務。

自定義配置

設置生成的目標地址

protobuf { generatedFilesBaseDir = "$projectDir/src/" } 

該配置設置protoc生成代碼的目標目錄,生成的具體目錄還會追加package的對應目錄

設置proto文件目錄

sourceSets {
  main {
    proto {
      // 除了默認的'src/main/proto'目錄新增proto文件的方法 srcDir 'src/main/protobuf' include '**/*.protodevel' } java{ ... } } } 

設置使用protoc的具體版本

默認使用系統path下設置的protoc,這里還可以定義特定的protoc程序

protobuf {
  protoc {
    path = '/usr/local/bin/protoc' } } //或者 protobuf { protoc { //從倉庫下載 artifact = 'com.google.protobuf:protoc:3.0.0' } }

https://www.cnblogs.com/resentment/p/6715124.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM