java maven maven-2 maven-3 protocol-buffers

java - Error de compilación de Maven y Protobuf: no se puede encontrar el símbolo en el paquete com.google.protobuf



maven-2 maven-3 (4)

Soy nuevo en Linux y Protobuf .. Necesito ayuda.

Estoy tratando de "paquete mvn" un proyecto que contiene muchos archivos ".proto", y un archivo pom.xml por supuesto ...

Estoy trabajando en Ubuntu

========================================

ERROR

Cuando ejecuto "paquete mvn", recibo este error:

después

... Compiling 11 source files to .../target/classes ...

Me sale un montón de estos errores:

[ERROR] .../target/generated-sources/...java:[16457,30] cannot find symbol [ERROR] symbol : class Parser [ERROR] location: package com.google.protobuf [ERROR] [ERROR] .../target/generated-sources/...java:[17154,37] cannot find symbol [ERROR] symbol : class Parser [ERROR] location: package com.google.protobuf [ERROR] [ERROR] .../target/generated-sources/...java:[17165,30] cannot find symbol [ERROR] symbol : class Parser [ERROR] location: package com.google.protobuf [ERROR] [ERROR] .../target/generated-sources/...java:[17909,37] cannot find symbol [ERROR] symbol : class Parser [ERROR] location: package com.google.protobuf [ERROR]

========================================

POM

Aquí está el archivo pom.xml, con groupId y artifactId eliminado:

<project> <modelVersion>4.0.0</modelVersion> <parent> <groupId>*****</groupId> <artifactId>*****</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>*****</artifactId> <version>1.0-SNAPSHOT</version> <properties> <proto.cas.path>${project.basedir}/src</proto.cas.path> <target.gen.source.path>${project.basedir}/target/generated-sources</target.gen.source.path> </properties> <dependencies> <dependency> <groupId>com.google.protobuf</groupId> <artifactId>protobuf-java</artifactId> <version>2.4.1</version> <scope>compile</scope> </dependency> </dependencies> <build> <sourceDirectory>${project.basedir}/src</sourceDirectory> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>2.0.2</version> <configuration> <source>1.6</source> <target>1.6</target> <includes><include>**/commonapps/**</include></includes> </configuration> </plugin> <plugin> <artifactId>maven-antrun-plugin</artifactId> <executions> <execution> <id>generate-sources</id> <phase>generate-sources</phase> <configuration> <tasks> <mkdir dir="${target.gen.source.path}" /> <path id="proto.path.files"> <fileset dir="${proto.cas.path}"> <include name="*.proto" /> </fileset> </path> <pathconvert pathsep=" " property="proto.files" refid="proto.path.files" /> <exec executable="protoc"> <arg value="--java_out=${target.gen.source.path}" /> <arg value="--proto_path=${proto.cas.path}" /> <arg line="${proto.files}" /> </exec> </tasks> <sourceRoot>${target.gen.source.path}</sourceRoot> </configuration> <goals> <goal>run</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>

========================================

INSTALACION DE PROTOBUF

hice

./configure make make check make install

en protobuf /,

y

mvn test mvn install mvn package

en protobuf / java.

Tomé el frasco en protobuf / java / target

y lo agregué a mi repositorio maven ejecutando:

mvn install:install-file -Dpackaging=jar -DgeneratePom=true -DgroupId=com.google.protobuf -DartifactId=protobuf-java -Dfile=protobuf-java-2.4.1.jar -Dversion=2.4.1

Tenga en cuenta que he perdido el tiempo con $ LD_LIBRARY_PATH Actualmente cuando ejecuto echo it, me sale:

/usr/local/lib/:/usr/:/usr/lib/:/usr/local/

sí ... como pueden ver, no tengo ni idea de cómo configurar $ LD_LIBRARY_PATH

Yo también corrí:

apt-get install protobuf-compiler

========================================

INSTALACION DE PROTOCOS

Olvidé lo que hice para hacer funcionar protoc, pero cuando corro

protoc --version

yo obtengo

libprotoc 2.5.0

========================================

MI PREGUNTA ES SIMILAR A:

Problemas al utilizar protobufs con java y scala.

fallo de compilación maven

========================================

¿POSIBLE RELAVENCIA?

Todavía no se encuentra el paquete, después de ''mvn install''

http://www.scriptol.com/programming/protocol-buffers-tutorial.php

¿Alguien puede ayudar?

========================================

PROGRESO

Aparentemente es un fallo del plugin:

https://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project casprotobuf: Compilation failure: Compilation failure:


La protoc --version debe ser la misma versión establecida en el archivo pom.xml ( protobuf-java-2.5.0.jar ).


Mi problema fue que una unidad probó la clase extendida desde la carpeta principal. Lo resolví con:

<!-- Allow tests to call classes in main folder --> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven-plugin</artifactId> <version>1.9.1</version> <executions> <execution> <id>add-source</id> <phase>generate-sources</phase> <goals> <goal>add-source</goal> </goals> <configuration> <sources> <source>src/test/java</source> <source>src/main/java</source> </sources> </configuration> </execution> </executions> </plugin>


Tuve este problema cuando había una discrepancia entre la versión de protoc instalada y la versión que aparece en el pom. Coincidir con las versiones solucionó el problema. En mi caso, tuve que cambiar mi versión de protoc a 2.4.1 para que coincida con el POM.


Yo tuve el mismo problema. construyendo las fuentes de protobuf desde google directamente (usé 2.5.0) y haciendo

mvn install:install-file -Dpackaging=jar -DgeneratePom=true -DgroupId=com.google.protobuf -DartifactId=protobuf-java -Dfile=protobuf-java-2.5.0.jar -Dversion=2.5.0

arreglado el problema para mi

En mis ensayos anteriores noté que faltaba el archivo jar en /root/.m2/repository/com/google/protobuf/protobuf-java/2.5.0/.

Tal vez intente usar la versión 2.5.0 en el archivo pom.xml y / o copiando el archivo jar manualmente.

aclamaciones