这是我的 protoc jar 插件 -
<plugin>
<groupId>com.github.os72</groupId>
<artifactId>protoc-jar-maven-plugin</artifactId>
<version>${protoc-maven-plugin.version}</version>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<protocVersion>${protobuf.version}</protocVersion>
<includeStdTypes>true</includeStdTypes>
<includeDirectories>
<include>src/main/resources</include>
</includeDirectories>
<inputDirectories>
<include>src/main/resources</include>
</inputDirectories>
</configuration>
</execution>
</executions>
</plugin>
我想包含一些来自 Nexus 上可用的 Maven 存储库的导入语句 - 其中包含一堆 proto 文件及其 java 编译版本。它是一个包含原始文件的 jar。
如何将这些 proto 文件(打包在 jar 中)包含在 protoc 路径中,以便可以将 proto 文件导入到我当前的工作目录中?
问题是,当我 mavenize 我的项目时,导入始终失败 - 找不到 .proto 文件。
我的 proto 命令用作协议的一部分,看起来像 - protoc-jar: 执行: [C:\protocjar3624070738032398618 in\protoc.exe, -IC:\protocjar3624070738032398618\include, -IC:myproject\src\main esources,--java_out = C:\ myproject arget \ generated-sources,C:\ myproject \ somedummy.proto]
该命令无法访问我正在导入的 jar 的 com.custom.proto 包,并且我不确定要添加到上述配置中的 inputDirectories 设置中才能将此包包含在 protoc 命令中。
附注我可以使用此设置 true 来获取 google.protobuf 包文件。但是,它不适用于包括 proto 文件(非标准)的其他 Maven 依赖项
尝试使用
includeMavenTypes
或 direct
添加 transitive
指令。该执行配置对我来说效果很好:
<execution>
<phase>generate-sources</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<protocVersion>3.11.4</protocVersion>
<includeDirectories>
<include>src/main/resources</include>
</includeDirectories>
<inputDirectories>
<include>src/main/resources</include>
</inputDirectories>
<includeMavenTypes>transitive</includeMavenTypes>
</configuration>
</execution>