当前位置: 首页 > 面试题库 >

在Eclipse IDE中使用Maven / m2e从.proto自动生成Java

涂泰平
2023-03-14
问题内容

对于我的团队,我想配置maven /
eclipse构建以从*.proto文件自动生成Java代码(在使用gRPC的项目中)。当前需要运行mvn generate-sourcemvn protobuf:compile(如在插件使用情况页面中)。或添加运行配置以调用maven目标是什么compile

每当刷新Eclipse Maven项目(Alt+
F5)或重新启动IDE时,都会重新构建项目,但项目中不会出现target/generated,从而使项目变成红色。因此,需要生成并刷新项目(F5)。UPDATE
Eclipse需要在.clathpath文件中配置源文件夹。

据我所知,它应该是m2e连接器,但是我只能为最古老的Google 找到一个https://github.com/masterzen/m2e-protoc-
connector,s plugin com.google.protobuf.tools:maven-protoc- plugin目前在https://github.com/上也没有提到grpc
/ grpc-java

我们使用完全引用/推荐的

  <groupId>org.xolstice.maven.plugins</groupId>
  <artifactId>protobuf-maven-plugin</artifactId>

那是:

<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>
        <protocArtifact>com.google.protobuf:protoc:3.1.0:exe:${os.detected.classifier}</protocArtifact>
        <pluginId>grpc-java</pluginId>
        <pluginArtifact>io.grpc:protoc-gen-grpc-java:1.0.1:exe:${os.detected.classifier}</pluginArtifact>
      </configuration>
      <executions>
        <execution>
          <goals>
            <goal>compile</goal>
            <goal>compile-custom</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

有关:

  • 看了这个,但是那个作者正在使用其他较旧的,现在不支持的插件:由protobuf生成的代码引起的Eclipse构建循环(与Maven Project Builder有关)
    PPS该插件https://github.com/igor-petruk/protobuf-
    maven-但是插件的延续形式为https://github.com/os72/protoc-jar-maven-
    plugin

问题答案:

对于protobuf-maven-plugin

感谢sergei-ivanov在https://github.com/xolstice/protobuf-maven-
plugin/issues/16中的
回答,这给出了链接https://github.com/trustin/os-maven-plugin#issues-
with- eclipse-m2e-or-other-ides:

需要下载os-maven-plugin-
xxxFinal.jar(与pomx.ml中的版本相同)并将其放入<ECLIPSE_HOME>/plugins目录中。

之后,Eclipse将在项目清理中生成源代码,包括在Maven -update project …(Alt+
F5)之后,但不在Project-> Build(或使用默认的自动生成)之后。同样在IDE启动时,它将无法编译。

是的,这是不合逻辑的:

Project-Clean将生成并编译Java源代码,
Project-Build将不会 生成和编译Java源代码

PS 引发错误507412



 类似资料:
  • 我在编译.proto文件时遇到问题。希望从.proto文件生成RESTendpoint。下面是代码和错误:syntax=“proto3”; 错误:github.com/grpc-ecosystem/grpc-gateway/third_party/googleapis:警告:目录不存在. google/api/annotations.proto:文件未找到.urlshortener.proto:导

  • 我正试图通过Eclipse中的存储库安装(帮助)来安装插件- 我尝试查找有关guava捆绑包的信息,但无法在Eclipse marketplace中搜索这些信息,也无法在那里找到任何我可以从中安装的repo。 我正在使用EclipseJunoSR2。我读过Eclipse的某些版本无法安装guava捆绑包,但没有读到Juno是其中之一。

  • 要用jooq创建一张唱片,我说 这将引发一个id为null的约束冲突异常。如果我设置一个id(如 我没有得到异常,但postgres不会自动生成值。 http://www.postgresql.org/docs/current/static/datatype-numeric.html#datatype-serial的postgres文档指出“在INSERT中省略SERIAL列,或者指定DEFAUL

  • 我在一个自动生成的代理后面。 我已经配置了设置。xml来使用这个代理,但它仍然不起作用。Android SDK可以很好地使用我设置的同一个代理。 我还能做些什么让maven工作? 错误: 如何获取我的NTLM身份验证凭据? 这是输出消息。在我的wpad中。dat(从我获取代理数据的地方),我没有指定的用户名和密码。。。

  • 问题内容: 我在配置时无法从WSDL和都存在于同一标准目录中的多个XSD文件生成Java类的问题。 如何在内联XSD中使用jaxb2 maven插件?仅在答案正确地建议使用插件配置中的参数这一点上相关,而该问题确实与内联XSD有关,而我的XSD是外部的。 插件目标参数在此处列出。 我的插件配置是: 我正在用进行测试,但插件忽略了调试输出中看到的 问题答案: 通过检查传递给JAXB XJC的参数的M

  • 然后右键单击模块并选择Maven->Generate Sources and Update Folders。不幸的是,在target->generated-sources下没有创建类 如果有任何帮助,我将不胜感激。