2017-06-05 58 views

回答

2
  1. 下載從https://github.com/google/protobuf/releases Win32的二進制 - 在寫作的時候,最新的是3.3.0,因此相應的二進制是https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-win32.zip
  2. 提取該壓縮文件到一個目錄中,並在此添加bin目錄到系統路徑環境變量。
  3. 簽出Github存儲庫的源代碼 - 由於v3.3.0是最新版本,因此簽出相同的標籤而不是主標籤。
  4. 將步驟1中的protoc.exe複製並粘貼到簽出位置的src目錄下。
  5. 繼續運行行家任務這裏提供 -

    1. 複製protoc.exe從步驟1的上方,以一種優選的位置,並確保該位置被添加 - https://github.com/google/protobuf/tree/master/java

    到庫運行examples進入Path環境變量。爲確保正確完成,請打開新的命令提示符並運行protoc --version以查看您安裝的相應版本。

  6. 創建Java包用於與所述實施例中給出的協議格式 - 在addressbook.proto定義爲解釋here - protoc -I=$SRC_DIR --java_out=$DST_DIR $SRC_DIR/addressbook.proto - 此這是需要的編譯代碼示例包com.example.tutorial下生成所需的AddressBookProtos類。

  7. 一旦生成的代碼在示例類路徑中,代碼就可以執行。

1

作爲一個簡單的方法,特別是對於臨時用戶,你也可以只:

  1. 複製和粘貼您的模式片段在這裏:https://protogen.marcgravell.com
  2. 選擇 「(protoc)的Java」(或任何語言需要),並單擊「生成」
  3. 你的代碼,或驚歎複製出在你的架構片段在編輯器中的錯誤和警告

電流限制:

  • 只有一個輸入和輸出文件可 - 這純粹是UI的問題(我需要一個標籤編輯器中工作,希望這周)
  • 這也意味着,「進口「嚴重受限 - 儘管一些內置的進口可以正常工作(」google/protobuf/duration「)。原型「,例如,將解決並正常工作)
  • 當前,如果」非protoc「分析器檢測到語法錯誤,並且您的模式包含單詞」import「,它將不會調用」protoc「 - 這是我調查protoc是否曾經被濫用以訪問意外的文件
+0

這是一個很好的工具,你已經想出了,肯定會幫助大多數用戶生成存根,這是一種罕見的活動。在使用Java和其他幾種語言進行嘗試時,它並不適用於我。 –

+0

@PavanKumar呵呵,這很奇怪 - 我在發佈之前嘗試過使用java(針對我自己的一些東西);您的模式是否涉及非導入-default protos?如果是這樣的話:請參閱上面的限制;我打算儘快更改爲標籤編輯器ch將啓用多個輸入和輸出,包括「導入」。如果它不是「進口」的限制,我會非常有趣地知道你*做了什麼*看到 –

+0

@PavanKumar哦,我看到了問題 - 我可以解決這個問題 - 一秒...;更新:問題是我沒有檢查生成文件的子文件夾 - 我想我自己的煙霧測試沒有指定包,所以:沒有文件夾;修復正在部署當前 - 稍後,這應該作爲一個不重要的示例工作https://protogen.marcgravell.com/#gf906e3bfba5fe679f12b46ef54741563(和[這裏是修復提交](https://github.com/mgravell/protobuf -net /提交/ e38b76bbf63f2c3e686627f035eb685ae3abea16)) –