新建Maven項目
新建一個 Maven 項目:
- pom定義了最小的maven2元素,即:groupId,artifactId,version。
- groupId:項目或者組織的唯一標志,並且配置時生成的路徑也是由此生成,如org.codehaus.mojo生成的相對路徑為:/org/codehaus/mojo
- artifactId: 項目的通用名稱
- version:項目的版本
- packaging: 打包的機制,如pom, jar, maven-plugin, ejb, war, ear, rar, par
- classifier: 分類
項目名稱:
我們新建的空白 Maven 項目結構如下:
導入 gRPC 對應包依賴
對Maven 項目來說,在 pom.xml 文件中需要增加對應 jar
<dependency> <groupId>io.grpc</groupId> <artifactId>grpc-all</artifactId> <version>0.13.2</version> </dependency>
導入 proto 插件
導入 Maven protobuf 插件
protobuf-maven-plugin:
https://www.xolstice.org/protobuf-maven-plugin/
修改 pom.xml 文件,增加下面節:
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.4.1.Final</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.0</version>
<configuration>
<!--
The version of protoc must match protobuf-java. If you don't depend on
protobuf-java directly, you will be transitively depending on the
protobuf-java version that grpc depends on.
-->
<protocArtifact>com.google.protobuf:protoc:3.0.0-beta-2:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:0.13.2:exe:${os.detected.classifier}</pluginArtifact>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
執行Maven插件命令。
在輸出命令中,我們可以看到編譯后的輸出。
[INFO] --- protobuf-maven-plugin:0.5.0:compile (default-cli) @ myTestMaven ---
[INFO] Compiling 2 proto file(s) to /Users/ghj1976/project/mystudy/Demo1/target/generated-sources/protobuf/java