簡體   English   中英

如何通過Eclipse在Windows中為Java構建Protobuf

[英]How to build Protobuf for Java in Windows via Eclipse

我下載了Protobuf源zip文件。 然后打開我的Classic Eclipse,然后選擇File-> Import-> Existing Maven Projects。

我選擇根文件夾為/ java。 它顯示pom.xml已被勾選,選擇Next。

屏幕上顯示:安裝Maven插件連接器:

maven-antrun-plugin:1.3:run (2 errors):
No marketplace entries found to handle maven-antrun-plugin:1.3:run in Eclipse. Please see Help for more information.

我在這里想念什么嗎?

您可以忽略該錯誤。 但是,當導入過程完成時,您可能會得到:

生命周期配置未涵蓋的插件執行:org.apache.maven.plugins:maven-antrun-plugin:1.3:run(執行:generate-sources,階段:generate-sources)

如果是這樣,原因是您當前的配置不支持maven-antrun。 您可以在此處找到一個相關的問題: 如何解決Spring Data Maven Builds的“生命周期配置未涵蓋的插件執行”

有關此問題的說明,請參見: http : //wiki.eclipse.org/M2E_plugin_execution_not_covered

簡單的解決方法? 將下一個代碼塊添加到pom.xml中:

<pluginManagement>
  <plugins>
    <plugin>
      <groupId>org.eclipse.m2e</groupId>
      <artifactId>lifecycle-mapping</artifactId>
      <version>1.0.0</version>
      <configuration>
        <lifecycleMappingMetadata>
          <pluginExecutions>
            <pluginExecution>
              <pluginExecutionFilter>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <versionRange>[1.0.0,)</versionRange>
                <goals>
                  <goal>run</goal>
                </goals>
              </pluginExecutionFilter>
              <action>
                <execute>
                  <runOnIncremental>false</runOnIncremental>
                </execute>
              </action>
            </pluginExecution>
          </pluginExecutions>
        </lifecycleMappingMetadata>
      </configuration>
    </plugin>
  </plugins>
</pluginManagement>

經過一些常規的Maven項目配置更新后,清除並重新生成所有文件,pom問題消失了。

但是隨后您可能會遇到有關缺少類的錯誤。 您必須下載協議二進制文件,並對在源目錄中可以找到的所有 .proto文件執行該文件。 例:

protoc --java_out=src/main/java -I../src ..\ src\google\protobuf\descriptor.proto

下面是一個bash腳本,可幫助您編譯所有這些原始文件。 在java目錄中執行腳本。

#/bin/bash
for proto_file in ../src/google/protobuf/*.proto; do
    echo "generating java source from $proto_file"
    protoc --java_out=core/src/main/java -I../src $proto_file
done

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM