Maven & Protobuf erreur de compilation: impossible de trouver le symbole dans le paquet com.Google.protobuf

Je suis nouveau sous Linux et Protobuf.. J'ai besoin d'aide.

j'essaie de" mvn package "un projet qui en contient beaucoup".proto" les fichiers, et un pom.fichier xml de cours...

je travaille sur Ubuntu

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

ERROR

quand j'exécute "mvn package", je reçois cette erreur:

après

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

je reçois un tas de ces erreurs:

[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

voici le pom.fichier xml, avec groupId & artifactId sorti:

<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>

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

PROTOBUF INSTALLATION

j'ai fait

./configure
make
make check
make install

dans protobuf/,

et

mvn test
mvn install
mvn package

dans protobuf/java.

j'ai pris le pot dans protobuf/java/cible

et l'a ajouté à mon Maven repo en exécutant:

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

notez que j'ai trafiqué avec $LD_LIBRARY_PATH. Actuellement, Quand je lance echo it, je reçois:

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

Oui.... comme vous pouvez le dire je n'ai pas la moindre idée sur la configuration $ LD_LIBRARY_PATH

j'ai aussi couru:

apt-get install protobuf-compiler

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

PROTOCOLE INSTALLATION

j'ai oublié ce que j'ai fait pour faire fonctionner le Protocole, Mais quand je cours

protoc --version

je reçois

libprotoc 2.5.0

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

MA QUESTION EST SIMILAIRE À:

Problèmes à l'aide de protobufs avec java et scala

de la compilation maven échec

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

POSSIBLE RELAVENCE?

pas encore de trouver le paquet, après "mvn install'

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

est-ce que quelqu'un peut aider?

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

PROGRESS

apparemment c'est un échec de 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:
21
demandé sur Community 2013-03-14 22:29:35

4 réponses

j'ai eu le même problème. construire les sources de protobuf de google directement (j'ai utilisé 2.5.0) et faire

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

a réglé le problème pour moi.

Dans mes premiers essais, j'ai remarqué que le pot-fichier /root/.m2/repository/com/google/protobuf/protobuf-java/ 2.5.0 / manquait.

Peut-être essayer d'utiliser la version 2.5.0 dans le pom.xml et / ou copie manuelle du fichier jarfile.

cheers

11
répondu thesonix 2013-03-19 13:33:22

j'ai eu ce problème quand il y avait un décalage entre la version du protocole installée et la version listée dans le pom. L'appariement des versions a résolu le problème. Dans mon cas, j'ai dû revenir à ma version de protocole 2.4.1 Pour correspondre au POM.

9
répondu Nathan 2013-12-05 21:00:06

Le protoc --version doit être la même version de 151910920" fichier ( protobuf-java-2.5.0.jar ).

9
répondu delijati 2015-05-28 14:13:21

mon problème était qu'un test unitaire étendait la classe du dossier principal. Je l'ai résolu avec:

<!-- 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>
1
répondu Valdis Vitolins 2016-07-22 14:06:31