![](/img/trans.png)
[英]How to prevent generated Java Protobuf files to be created in the build directory?
[英]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.