【发布时间】:2015-09-04 01:09:45
【问题描述】:
我已经在我的 CentO 中安装了 protobuf 2.5.0,
当我执行命令 protoc --version 时,它会产生
libprotoc 2.5.0
作为输出。
但是一旦我从 git 中提取代码并尝试使用 Maven3 编译它时,proto 模块会抛出错误提示,
protoc 失败错误:/bin/sh: protoc: command not found
我参考了很多博客,也尝试过如下更改我的 bashrc 路径,
导出 JAVA_HOME=/opt/java/jdk1.7.0_67
导出 PATH=$PATH:/opt/java/jdk1.7.0_67/bin
导出 PATH=$PATH:/usr/local/lib
但如果我执行,
sudo yum install protobuf-compiler
它安装了 protobuf2.3 编译器,这个特定的错误得到了解决。但是由于我的 pom 文件有 protobuf 2.5.0,所以在下次编译时会出现 java abstract method error。我被困在如何进行。我已经花了很多时间,所以非常感谢任何帮助。
我的 proto 模块的 pom 文件,
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>GradPower</artifactId>
<groupId>org.screative.gardpower</groupId>
<version>1.0-SNAPSHOT</version>
</parent>
<groupId>proto</groupId>
<artifactId>proto</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.5.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>com.google.protobuf.tools</groupId>
<artifactId>maven-protoc-plugin</artifactId>
<version>0.1.10</version>
<configuration>
<protocExecutable>protoc</protocExecutable>
<protoSourceRoot>${project.basedir}/src/main/proto/</protoSourceRoot>
<languageSpecifications>
<LanguageSpecification>
<language>JAVA</language>
<outputDirectory>
${project.basedir}/target/generated-sources/protoc
</outputDirectory>
</LanguageSpecification>
</languageSpecifications>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
<compilerArgument></compilerArgument>
</configuration>
</plugin>
</plugins>
</build>
<pluginRepositories>
<pluginRepository>
<id>dtrott</id>
<url>http://maven.davidtrott.com/repository</url>
</pluginRepository>
</pluginRepositories>
</project>
提前致谢。
编辑: 我解决了。我将 protoc 文件从 /usr/local/lib 复制到 /usr/bin
它解决了它。一个愚蠢的错误:P
【问题讨论】:
-
protoc不应该安装在/usr/local/lib中。如果从源安装,它应该已经安装到/usr/local/bin。
标签: java maven-3 protocol-buffers