LinuxとProtobufは初めてです。助けが必要です。
もちろん、多くの「.proto」ファイルとpom.xmlファイルを含むプロジェクトを「mvnパッケージ」にしようとしています...
私はUbuntuに取り組んでいます
=======================================
「mvn package」を実行すると、次のエラーが表示されます。
後
...
Compiling 11 source files to .../target/classes
...
これらのエラーがたくさん表示されます:
[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.xmlファイルで、groupIdとArtifactIdが取り出されています。
<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>
=======================================
終わったよ
./configure
make
make check
make install
protobuf /、
そして
mvn test
mvn install
mvn package
protobuf/Java。
私はprotobuf/Java/targetでjarを受け取りました
次のコマンドを実行して、それを私のmavenリポジトリに追加します。
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
$ LD_LIBRARY_PATHをいじったことに注意してください。現在、echo itを実行すると、次のようになります。
/usr/local/lib/:/usr/:/usr/lib/:/usr/local/
ええと…あなたが言うことができるように、私は$ LD_LIBRARY_PATHを設定することについての手がかりを持っていません
私も走った:
apt-get install protobuf-compiler
=======================================
Protocを動作させるために何をしたかを忘れましたが、実行すると
protoc --version
私は得る
libprotoc 2.5.0
=======================================
Javaおよびscala)でprotobufsを使用するときの問題
=======================================
'mvn install'の後、まだパッケージが見つかりません
http://www.scriptol.com/programming/protocol-buffers-tutorial.php
誰か助けてもらえますか?
=======================================
どうやらそれはプラグインの失敗だ:
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:
私も同じ問題を抱えていました。グーグルから直接protobufソースを構築し(私は2.5.0を使用しました)そして実行しています
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
私のために問題を修正しました。
私が気付いた以前のトライアルでは、/ root/.m2/repository/com/google/protobuf/protobuf-Java/2.5.0 /のjarファイルが見つからないことに気付きました。
多分pom.xmlでバージョン2.5.0を使用するか、jarファイルを手動でコピーしてみてください。
乾杯
インストールされているプロトコルのバージョンとpomにリストされているバージョンの間に不一致がある場合、この問題が発生しました。バージョンを一致させることで問題が修正されました。私の場合、POMに合わせるために、プロトコルバージョンを2.4.1に戻す必要がありました。
protoc --version
は、pom.xml
ファイル(protobuf-Java-2.5.0.jar
)で設定したものと同じバージョンである必要があります。
私にとっては、ビルドスクリプトで以下を使用した後に解決されます
<clearOutputDirectory>false</clearOutputDirectory
完全なビルドスクリプト
<build>
<extensions>
<extension>
<groupId>kr.motd.maven</groupId>
<artifactId>os-maven-plugin</artifactId>
<version>1.5.0.Final</version>
</extension>
</extensions>
<plugins>
<plugin>
<groupId>org.xolstice.maven.plugins</groupId>
<artifactId>protobuf-maven-plugin</artifactId>
<version>0.5.1</version>
<configuration>
<protocArtifact>com.google.protobuf:protoc:3.6.1:exe:${os.detected.classifier}</protocArtifact>
<pluginId>grpc-Java</pluginId>
<pluginArtifact>io.grpc:protoc-gen-grpc-Java:1.19.0:exe:${os.detected.classifier}</pluginArtifact>
<clearOutputDirectory>false</clearOutputDirectory>
<outputDirectory>${basedir}/src/main/Java/</outputDirectory>
</configuration>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>compile-custom</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
私の問題は、メインフォルダーからの1つの単体テスト拡張クラスでした。私はそれを解決しました:
<!-- 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>