POM

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. <groupId>com.semonx</groupId>
  7. <artifactId>grpc-demo</artifactId>
  8. <version>1.0-SNAPSHOT</version>
  9. <properties>
  10. <!-- 指定版本为1.8 -->
  11. <maven.compiler.source>1.8</maven.compiler.source>
  12. <maven.compiler.target>1.8</maven.compiler.target>
  13. <!--项目编码改为UTF-8 -->
  14. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  15. </properties>
  16. <dependencies>
  17. <dependency>
  18. <groupId>io.grpc</groupId>
  19. <artifactId>grpc-netty-shaded</artifactId>
  20. <version>1.31.0</version>
  21. </dependency>
  22. <dependency>
  23. <groupId>io.grpc</groupId>
  24. <artifactId>grpc-protobuf</artifactId>
  25. <version>1.31.0</version>
  26. </dependency>
  27. <dependency>
  28. <groupId>io.grpc</groupId>
  29. <artifactId>grpc-stub</artifactId>
  30. <version>1.31.0</version>
  31. </dependency>
  32. <!-- <dependency> &lt;!&ndash; necessary for Java 9+ &ndash;&gt;-->
  33. <!-- <groupId>org.apache.tomcat</groupId>-->
  34. <!-- <artifactId>annotations-api</artifactId>-->
  35. <!-- <version>6.0.53</version>-->
  36. <!-- <scope>provided</scope>-->
  37. <!-- </dependency>-->
  38. </dependencies>
  39. <build>
  40. <extensions>
  41. <extension>
  42. <groupId>kr.motd.maven</groupId>
  43. <artifactId>os-maven-plugin</artifactId>
  44. <version>1.6.2</version>
  45. </extension>
  46. </extensions>
  47. <plugins>
  48. <plugin>
  49. <groupId>org.apache.maven.plugins</groupId>
  50. <artifactId>maven-compiler-plugin</artifactId>
  51. <version>3.8.1</version>
  52. </plugin>
  53. <plugin>
  54. <groupId>org.xolstice.maven.plugins</groupId>
  55. <artifactId>protobuf-maven-plugin</artifactId>
  56. <version>0.6.1</version>
  57. <extensions>true</extensions>
  58. <configuration>
  59. <!-- 基础配置 -->
  60. <protocArtifact>com.google.protobuf:protoc:3.12.0:exe:${os.detected.classifier}</protocArtifact>
  61. <pluginId>grpc-java</pluginId>
  62. <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.31.0:exe:${os.detected.classifier}</pluginArtifact>
  63. <!-- 配置.proto所在路径 -->
  64. <protoSourceRoot>${project.basedir}/proto-src</protoSourceRoot>
  65. <!-- 配置代码生成的根目录,如果.proto中设置了package或option java_package,会在根目录下生成层级目录 -->
  66. <outputDirectory>${project.build.sourceDirectory}</outputDirectory>
  67. <!-- 设置是否在生成java文件之前清空outputDirectory的文件,默认值为true,设置为false时也会覆盖同名文件 -->
  68. <!-- 最好设置成false,避免.proto文件中忘记写包导致源码目录被清掉 -->
  69. <clearOutputDirectory>false</clearOutputDirectory>
  70. <!-- 临时文件生成路径 -->
  71. <temporaryProtoFileDirectory>${project.build.directory}/protoc-temp</temporaryProtoFileDirectory>
  72. </configuration>
  73. <executions>
  74. <execution>
  75. <goals>
  76. <goal>compile</goal>
  77. <goal>compile-custom</goal>
  78. </goals>
  79. </execution>
  80. </executions>
  81. </plugin>
  82. </plugins>
  83. </build>
  84. </project>