我正在尝试使用protobuf生成存根。我的pom.xml有以下代码
<plugin>
<groupId>com.github.os72</groupId>
<artifactId>protoc-jar-maven-plugin</artifactId>
<version>3.8.0</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<protocVersion>3.8.0</protocVersion>
<includeStdTypes>true</includeStdTypes>
<inputDirectories>
<include>src/main/proto</include>
</inputDirectories>
<outputTargets>
<outputTarget>
<type>java</type>
</outputTarget>
<outputTarget>
<type>grpc-java</type>
<pluginArtifact>io.grpc:protoc-gen-grpc-java:1.24.0</pluginArtifact>
</outputTarget>
</outputTargets>
</configuration>
</execution>
</executions>
</plugin>
但是,它生成目标为java1.8的源文件。
我正在将我的应用迁移到java 11,并在pom.xml文件中包含了以下JAR:
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>javax.activation</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.activation-api</artifactId>
<version>1.3.2</version>
</dependency>
但是,maven protoc插件使用注解javax.annotation.generated而不是javax.annotation.api.generated生成文件grpc.java
有没有其他方法可以生成目标版本为JDK11的java存根。
1条答案
按热度按时间slmsl1lt1#
如果您遵循grpc java文档,它会指示您使用:
所用示例的以前版本
javax.annotation:javax.annotation-api:1.2
,但由于许可的原因,它被tomcat取代。在pom.xml中,您可能混淆了“激活”和“注解”,乍一看,它们非常相似。我不知道有什么问题
javax.annotation.api.Generated
注解。我没有看到任何真正的证据表明javax.annotation.processing.Generated
是一个合适的替代品javax.annotation.Generated
任何一个