2

JavaにGoogleプロトコルバッファを使用しようとしています(私はJavaの初心者ですが、試しています)。

まず、OSX を使用しており、brew install protobufコマンドでプロトコル バッファをインストールしました。

protoc コマンドは問題なく動作します。

私はMyProtocol.javaprotocによって生成しました。

Java 用のプロトコル バッファをその手順 (README.txt) としてインストールしました。

mvn installコマンドはディレクトリを作成し、ディレクトリ内のどこかにファイル.m2を見つけることができます。protobuf-java-2.4.1.jar

インポートするだけの簡単なテストJavaコードを書きMyProtocol.javaましたが、パッケージが見つからないと不平を言いますcom.google.protobuf

そのため、jar ファイルmvn packageを作成し、そのディレクトリを CLASSPATH として追加したところ、適切にコンパイルされました。

javac -classpath <protobuf-dir>/jara/target/classes Test.java ./com/example/tutorial/AddressBookProtos.java

Maven のリポジトリ ディレクトリ ( ~/.m2/repository) を使用すると、再びエラーが発生します。

パッケージをインストールすると、maven は CLASSPATH を作成しませんか? そうでない場合、インストールされたパッケージをmavenで使用してコードをコンパイルするにはどうすればよいですか?

4

2 に答える 2

2

Maven依存関係プラグインには、必要なことを実行するという目標build-classpathがあります。使用法のヒントは、[使用法]ページで入手できます。

于 2012-09-20T12:02:01.173 に答える
1

Maven はセットアップを変更しないため、必要に応じて CLASSPATH を設定する必要があります。

ただし、Maven があなたを妨害できる方法が少なくとも 2 つあります。

  • Maven アセンブリ プラグインを使用して、すべての依存関係をディレクトリまたはアーカイブに収集できるため、プログラムを実行するために CLASSPATH に 1 つのディレクトリを追加するだけで済みます。
  • Exec Maven プラグインを使用して、プログラムの実行を目標として POM に追加し、Maven で実行できます。
于 2012-09-20T11:57:00.590 に答える