プロトコルバッファ(gRPC)を使用して3つのJavaアプリケーション(バックエンド、フロントエンド、およびAndroidアプリケーション)を通信したいと考えています。だから、3つのアプリケーションすべてが.protoファイルを管理する共有protobufリポジトリ(Github)にアクセスできるようにしたいと思います。私はGradleとprotobufsを初めて使用しているので、これを管理する適切な方法が何であるか分かりません。また、何か助けや指導をいただければ幸いです。各Gradleプロジェクトでgithub protobuf repoを依存関係として宣言してからプロジェクトをビルドするときにコンパイルすることはできますか? Androidアプリではprotobufsの「Java-Lite」の別のバージョンが必要なので、コンパイルされたprotobufクラスを格納するのではなく、この方法で行うのが良い方法だと思いますか?私はgoogle/protobuf-gradle-pluginを使用して.protoファイルをコンパイルし、ローカルファイルからコンパイルするためのドキュメントを参照するか、プリプロコンパイルされた.protoファイルを持つプロジェクトをプルするが、リモートの.protoファイルをプルするためのドキュメントはない。正しい軌道にいるのですか?共有プロトコルバッファライブラリの管理とGradleを使用したコンパイル
0
A
答えて
0
リモートの.protoファイル/リポジトリはどのような形式ですか?単なるURLの場合は、タスクをダウンロードしてください:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.0'
}
}
plugins {
id "de.undercouch.download" version "3.2.0"
}
group 'testtest'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'com.google.protobuf'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
task downloadFile << {
download {
src 'https://raw.githubusercontent.com/grpc/grpc-java/master/compiler/src/test/proto/test.proto'
dest "$projectDir/src/main/proto/test.proto"
overwrite true
}
}
build.dependsOn downloadFile
dependencies {
compile "io.grpc:grpc-protobuf-lite:1.5.0"
compile "io.grpc:grpc-stub:1.5.0"
}
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.3.0'
}
plugins {
javalite {
artifact = "com.google.protobuf:protoc-gen-javalite:3.0.0"
}
grpc {
artifact = "io.grpc:protoc-gen-grpc-java:1.5.0"
}
}
generateProtoTasks {
all().each { task ->
task.builtins {
remove java
}
task.plugins {
javalite {}
grpc {
option 'lite'
}
}
}
}
}
関連する問題
- 1. Gradleを使用したKotlinサーバーとクライアントプロジェクト間の共有コード
- 2. 共有メールボックス管理
- 3. 共有ポイント2013の管理クライアントオブジェクトモデルを使用してファイルをアップロード
- 4. バージョン管理共有フォルダ
- 5. ASP.netユーザー管理とGoDaddy共有ホスティング
- 6. Capistrano:共有のファイルのバージョン管理/
- 7. 共有ファイルの管理方法
- 8. アクセストークンを使用してプロセスの管理者権限を共有する
- 9. gradle/intellij - 共有テストリソース
- 10. githubの共有リポジトリでプルリクエストを管理するためのワークフロー
- 11. nvccを使用してコンパイルされたCuda共有ライブラリを使用してOpenCVコードをコンパイルするには?
- 12. Angular 2のng2共有ボタンを使用した共有
- 13. Mercurial:共通/共有コードを管理する方法
- 14. cudaの共有メモリと管理対象メモリの変数
- 15. Gradleの依存性管理
- 16. 共有ライブラリを使用してファイルをコンパイルする方法は?
- 17. Eclipseを使用したソースコードの共有
- 18. UIActivityViewControllerを使用したオーディオファイルの共有
- 19. PHPで管理/共有されたWebホスティング5.3 +
- 20. gitを使用してバージョン管理なしの人と共同作業する
- 21. 共有されたmmapファイルを管理するためのライブラリまたはツール
- 22. タブ共有を使用したAndroid SharedPreferences
- 23. 共有ライブラリを使用したクロスコンパイル
- 24. 共有テキスト+インテントを使用したリンク
- 25. std :: shared_ptrを使用した共有データクラス
- 26. フックを使用したInstagramビデオ共有
- 27. CGIとしてPHPを使用した共有ホスティングのZend Framework
- 28. GAEデータストアを使用した地理情報管理とオブジェクト化
- 29. 異なるバージョンのUbuntuの共有ライブラリを管理する
- 30. 共有ライブラリのスプリングクラウドブートストラップのプロパティを管理する方法は?