javaのjarファイルについて

■自サイト
Mavenメモ2~eclipseプラグイン
Apache Mavenメモ

■参考
jarファイルの仕様(oracle,1.5だから古い)、manifestファイルとかも


■mavenで生成されたjarファイル
mavenで生成されたjarファイルの中をみると、クラスファイル以外では、pom.xml,pom.propertiesファイルがある。あと、META-INFディレクトリ下にMANIFEST.MFファイルがある。マニフェストファイルの中身はこんな感じ。

Manifest-Version: 1.0
Built-By: hogeuser
Build-Jdk: 1.7.0_21
Class-Path: lib/commons-lang3-3.0.jar lib/opencsv-2.3.jar
Created-By: Apache Maven 3.0.5
Main-Class: hoge1.hoge2.HogeEntry
Archiver-Version: Plexus Archiver

JDKのバージョン、エントリクラスや外部jarのクラスパス等の情報がある。

pom.propertiesはこんな感じ。
#Generated by Maven
#Fri Sep 27 10:43:59 JST 2013
version=0.0.1-SNAPSHOT
groupId=hoge1.hoge2
artifactId=HogePrj

pom.xmlファイルの必要最低限の情報ですね。

■生javaプロジェクトで作成した実行可能なjarファイル

eclipseで作ったjavaプロジェクトで実行可能なjarをエクスポートした場合もMETA-INFディレクトリ下にMANIFEST.MFファイルがある。中身はこんな感じ。外部jarも実行可能なjarの中に含んでいます。

Manifest-Version: 1.0
Rsrc-Class-Path: ./ commons-lang3-3.1.jar mysql-connector-java-5.1.20-
bin.jar opencsv-2.3.jar
Class-Path: .
Rsrc-Main-Class: batch.HogeEntry
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader