以前、jar化する場合のpomの記述方法について書いたのですが、一部記述が正しくなかったようです。
この方法でやってもjarファイルを単独で取り出すとNoClassDefFoundErrorが出てしまいます。
この場合で有効なのはあくまでlibディレクトリが同階層にある場合のようですね。
完全にjarファイル単独で動かす場合ですが、pomに以下のように記述すればOKです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<plugin> <artifactId>maven-assembly-plugin</artifactId> <version>2.2</version> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> <archive> <manifest> <mainClass>起動ファイルのフルパス</mainClass> </manifest> </archive> </configuration> </plugin> |
このように記述してビルドするとjarファイルが2つできます。(依存ファイルを含むものと含まないもの)
jar-with-dependenciesとかかれたものが依存ファイルを含んだものですので、このjarファイルを使う場合は単独で使っても動きます。
中を解凍してみると依存ライブラリが入っているのがわかると思います。
参考リンク
mavenで実行可能なjarファイルと依存ライブラリを含めたzipアーカイブを作成する
依存するjarを含んだバッチ用jarファイルをMavenでビルドする手順
Maven Assembly Plugin をマルチモジュールプロジェクトで使う
追記:Netbeansで作成したjarファイルを読み込むとき
ツール→ライブラリ→クラスパスで「jar/フォルダの追加」を行い、jarファイルを登録すればクラスパスとして追加することができます。
これ以外にプロジェクトの「依存性」で右クリック→開いているプロジェクト→対象プロジェクトを選ぶでもOKです。