从 Maven 依赖项导入 .proto 文件?

Rig*_*hto 6 protocol-buffers protoc

这是我的 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>
Run Code Online (Sandbox Code Playgroud)

我想包含一些来自 nexus 上可用的 Maven 存储库的导入语句 - 其中包含一堆 proto 文件及其 java 编译版本。它是一个包含原始文件的 jar。

如何将这些 proto 文件(打包在 jar 中)包含在 protoc 路径中,以便可以将 proto 文件导入到我当前的工作目录中?

问题是,当我 mavenize 我的项目时,导入始终失败 - 找不到 .proto 文件。

我的 proto 命令用作协议的一部分,看起来像 - protoc-jar: 执行: [C:\protocjar3624070738032398618\bin\protoc.exe, -IC:\protocjar3624070738032398618\include, -IC:myproject\src\main\resources , --java_out=C:\myproject\target\ generated-sources, C:\myproject\somedummy.proto]

该命令无法访问我正在导入的 jar 的 com.custom.proto 包,并且我不确定要添加到上述配置中的 inputDirectories 设置中才能将此包包含在 protoc 命令中。

PS 我可以使用此设置 true 来获取 google.protobuf 包文件。但是,它不适用于包括 proto 文件(非标准)的其他 Maven 依赖项

Rad*_*nov 0

尝试使用或添加includeMavenTypes指令。该执行配置对我来说效果很好:directtransitive

<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>
Run Code Online (Sandbox Code Playgroud)