Feb 15, 2006
Maven2 で JAR の Manifest ファイルを設定する方法をメモ
Maven2 の JAR アーカイバ(maven-jar-plugin) における Manifest 関連の設定をメモ。
Manifest 関連の設定方法
JAR アーカイバの Manifest 関連の設定は pom.xml に記述する。
<model>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>jp.in_vitro.dummy.Main</mainClass>
<packageName>jp.in_vitro.dummy</packageName>
<addClasspath>true</addClasspath>
<addExtensions>true</addExtensions>
<classpathPrefix>lib</classpathPrefix>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</model>
Manifest 関連の設定項目
| 設定項目 | 設定値 | 解説 |
|---|---|---|
| addClasspath | "true" / "false" | "true" が指定された場合、pom.xml の dependencies に従い Class-Path が出力される。 |
| addExtensions | "true" / "false" | "true" が指定された場合、pom.xml の dependencies に従い拡張情報(各 dependency の詳細情報)が出力される。 |
| classpathPrefix | 任意の文字列 | addClasspath に "true" が設定された際、各 Classpath エントリに指定された文字列が接頭語として付加される。例えば classpathPrefix に "lib" を指定すると、Class-Path の各エレメントは "lib/commons-logging.jar" の様になる。 |
| mainClass | 任意のクラス名(FQCN) | JAR のメインクラスを指定する。Manifest ファイルの Main-Class に出力される。 |
| packageName | 任意のパッケージ名 | JAR のパッケージを指定する。Manifest ファイルの Package に出力される。 |
Manifest 関連設定の実体
pom.xml で指定した Manifest 関連の設定は maven-archiver (maven-archiver-2.0-beta-3.jar など) にある org.apache.maven.archiver.ManifestConfiguration というクラスが保持する。 ManifestConfiguration には以下のフィールドが用意されていて、ここに設定内容がインジェクションされる。
private String mainClass; private String packageName; private String addClasspath; private String addExtensions; private String classpathPrefix;
TrackBack ping me at
http://www.in-vitro.jp/blog/index.cgi/Maven/20060215_01.trackback
writeback message: Ready to post a comment.
