我刚刚得到了上一个稳定的hadoop版本(2.4),并按照此指令将其导入eclipse。
但是,我有几个构建错误 cannot be resolved to a type
在test src文件夹中。例如:
import org.apache.hadoop.ipc.protobuf.TestProtos.EchoRequestProto;
import org.apache.hadoop.ipc.protobuf.TestProtos.EchoResponseProto;
import org.apache.hadoop.ipc.protobuf.TestProtos.EmptyRequestProto;
import org.apache.hadoop.ipc.protobuf.TestProtos.EmptyResponseProto;
import org.apache.hadoop.ipc.protobuf.TestRpcServiceProtos.TestProtobufRpcProto;
import org.apache.hadoop.ipc.protobuf.TestRpcServiceProtos.TestProtobufRpc2Proto;
eclipse找不到这些类中的任何一个,仅仅是因为org.apache.hadoop.ipc.protobuf包是空的。我做错什么了吗?缺少一些配置步骤?
3条答案
按热度按时间9gm1akwq1#
protobuf相关的java文件在您的
${project.build.directory}/generated-sources/java
,在哪里project.build.directory
我的情况是<module_path>/target
. 所以完整的路径是<module_path>/target/generated-sources/java
. 我使用intellij idea,在我将前面提到的完整路径标记为sources root之后,一切正常。你可以试着做标记<your_hadoop_project_root_path>/hadoop-common-project/hadoop-common/target/generated-sources/java
作为根源。30byixjq2#
在hadoop源代码库中找不到这些包下的任何java文件。这个包下的java文件将由protoc编译器生成
执行maven install时
mvn install -DskipTests
protoc编译器将生成相应的.java文件要设置hadoop构建环境,请参阅以下链接
http://wiki.apache.org/hadoop/howtocontribute
安装本机库安装protobuf等。有关详细信息,请参阅上面的链接
一旦你成功执行命令
mvn install -DskipTests
您可以在protobuf包下看到java文件nmpmafwu3#
尝试cd路径“/hadoop common project/hadoop common/src/test/proto”,并执行以下命令:
protoc --java_out=../java *.proto
. 请注意,您应该正确安装协议缓冲区(google项目),您可以从github获得。