zoukankan      html  css  js  c++  java
  • idea中使用maven编译proto文件

    一、.proto文件语法高亮显示

        需要安装Protobuf Support插件

       依次点击Intellij中的“File”-->"Settings"-->"Plugins"-->"Browse repositories",如下所示:

     

     输入Protobuf,如下所示

     安装完后,重启Intellij IDEA,查看.proto文件,会发现已经支持语法高亮显示。

    二、将.proto文件转成Java类

    一般的做法,是执行protoc命令,依次将.proto文件转成Java类:

    protoc.exe -I=d:/tmp --java_out=d:/tmp d:/tmp/monitor_data.proto

    不过gRPC官方推荐了一种更优雅的使用姿势,可以通过maven轻松搞定

     2.1 pom.xml文件配置

    1 <properties>
    2   <grpc.version>1.6.1</grpc.version>
    3   <protobuf.version>3.3.0</protobuf.version>
    4 </properties>
     1 <dependencies>
     2          <dependency>
     3             <groupId>io.grpc</groupId>
     4             <artifactId>grpc-netty</artifactId>
     5             <version>${grpc.version}</version>
     6             <scope>provided</scope>
     7         </dependency>
     8         <dependency>
     9             <groupId>io.grpc</groupId>
    10             <artifactId>grpc-protobuf</artifactId>
    11             <version>${grpc.version}</version>
    12             <scope>provided</scope>
    13         </dependency>
    14         <dependency>
    15             <groupId>io.grpc</groupId>
    16             <artifactId>grpc-stub</artifactId>
    17             <version>${grpc.version}</version>
    18             <scope>provided</scope>
    19         </dependency>
    20         <dependency>
    21             <groupId>com.google.protobuf</groupId>
    22             <artifactId>protobuf-java</artifactId>
    23             <version>${protobuf.version}</version>
    24         </dependency>
    25 </dependencies>
     1 <build>
     2         <extensions>
     3             <extension>
     4                 <groupId>kr.motd.maven</groupId>
     5                 <artifactId>os-maven-plugin</artifactId>
     6                 <version>1.5.0.Final</version>
     7             </extension>
     8         </extensions>
     9         <plugins>
    10             <plugin>
    11                 <groupId>org.xolstice.maven.plugins</groupId>
    12                 <artifactId>protobuf-maven-plugin</artifactId>
    13                 <version>0.5.0</version>
    14                 <configuration>
    15                   <protocArtifact>com.google.protobuf:protoc:${protobuf.version}:exe:${os.detected.classifier}</protocArtifact>
    16                     <pluginId>grpc-java</pluginId>
    17                     <pluginArtifact>io.grpc:protoc-gen-grpc-java:${grpc.version}:exe:${os.detected.classifier}</pluginArtifact>
    18                 </configuration>
    19                 <executions>
    20                     <execution>
    21                         <goals>
    22                             <goal>compile</goal>
    23                             <goal>compile-custom</goal>
    24                         </goals>
    25                     </execution>
    26                 </executions>
    27             </plugin>            
    28         </plugins>
    29     </build>

    2.2 编译生成Java类

      使用maven的编译命令,即可在target中看到根据.proto文件生成的Java类,如下所示:

    三、遇到的坑

    1.打开.proto文件后,显示“File not found”提示,如下所示:

    这种情况,一般是未设置.proto文件所在文件夹为源文件,可以进行如下设置:

     在.proto文件所在的文件夹上右键,设置目录为源文件根目录,如下所示:

  • 相关阅读:
    Educational Codeforces Round 22 C. The Tag Game
    Codeforces Round #421 (Div. 1) B. Mister B and PR Shifts(技巧)
    Codeforces Round #422 (Div. 2) D. My pretty girl Noora
    Codeforces Round #422 (Div. 2) C. Hacker, pack your bags!
    hdu3756(三分)
    hihocoder1496(高维前缀和)
    AOJ731(不等式)
    UVALive7042(博弈论)
    Codeforces 284E(概率)
    hdu4778(状态压缩dp)
  • 原文地址:https://www.cnblogs.com/laoxia/p/11845904.html
Copyright © 2011-2022 走看看