2016-07-27 18 views
0

私はJavaを使い慣れていないので、Mavenを使ってJUNG 2.2ライブラリを構築したいのですが、これは標準的な方法です。以前はMavenを使用したことはありませんでしたが、インストールして実行するのは難しくありませんでした。mvn clean installは問題なく動作しました。Mavenを使ってJUNGライブラリを構築する

ここで、JUNGにはそれぞれのディレクトリがある6つのサブパッケージ(API、実装、アルゴリズム、I/O、ビジュアライゼーション、サンプル)があります(例:jung-apiはAPIパッケージのディレクトリです)。 installターゲットは、いくつかのJava .classファイルを生成し、それらを6つのディレクトリのそれぞれのtarget/classes/ディレクトリに配置します。

私は、ライブラリを使用するためには次に何をすべきかと困惑しています:私はちょうどシェルで私CLASSPATH変数にユングのディレクトリパスを追加する必要がありますか?しかし、私はjung-api.target.classes.edu.uci.ics.jung.graph.*をインポートする必要があります。これは入力するのが非常に長いだけでなく、Javaコンパイラがパッケージの名前に望ましくない " - "を持っています!そして、私がバイパスした場合でも「を - 」の問題は、私はランタイムエラーを取得:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Supplier 

私はOS X 10.9.5上のjavac 1.8.o_91を使用しています。私が見つけた

+0

'mvn clean install'はローカルMavenリポジトリにJARをインストールする必要があります。いずれにしても( 'mvn clean package'を実行した場合でも)' target'ディレクトリにはJARが含まれている必要があります。 * JARがない場合は、ビルドに何か問題が発生している可能性があります。 (もしそうなら、Maven出力に隠されたエラーメッセージはありますか?)いずれにしても、JARを 'jar -xf'などで手作業で作成する必要はありません。 – Marco13

+0

私はあなたが私のことを言いたいのですが、私のローカルMavenリポジトリの場所を知りません。あるいは、私の家の新しい '.m2'ディレクトリ(同じJARと他のものが入っています)でしょうか。 – Giorgio

+0

はい、それです。 MavenでコンパイルされたANYライブラリに必要なすべての依存関係は、そこにコピーされます。そして、基本的に 'mvn clean package'はあなたのJARを(' target'フォルダに)ローカルにビルドするだけですが、 'mvn clean install'は新しくビルドされたJARをあなたのMavenリポジトリにコピーします。 – Marco13

答えて

0

ソリューションはjar -xfjung-samplesディレクトリ内 .jarファイルのそれぞれ一つであった、そして私は私のCLASSPATH変数に追加場所にjarによって抽出されたすべてのディレクトリを移動します。少なくともこれはうまくいくようです。

関連する問題