--
--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Tag:

06
2009

Maven2で生成したMANIFEST.MFにPCのアカウント名が入る

CATEGORYJava
引き続きMaven2を使用中。

ビルドしたjarのMANIFEST.MFを確認してたら、こんな風になってた。
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: アカウント名
Build-Jdk: 1.6.0_07
あー、会社ならともかく、家のPCはアカウント名=本名なので、勝手に設定されると困ります。
というか、気づかなかったら実名公開とか、何という罠(--;

というわけで Built-By を変更する方法を調査。3つ発見。

1つ目は、pom.xml 内の maven-jar-plugin の設定で、manifestFile 要素に外部の MANIFEST.MF ファイルを指定して、その中に Built-By を記述しておく方法。
既に記述してある場合、そちらが優先される模様。
ただし当然ながら、以後誰がビルドしても固定で Built-By が設定されてしまう。
また、特にMANIFEST.MFを使っていなかった場合に、これのためだけに用意するのはちょっと邪魔。

次に2つ目、同様に pom.xml の maven-jar-plugin の設定で、manifestEntries 要素で Built-By を設定する方法。こんな感じ。
<manifestEntries>
<Built-By>honeplus</Built-By>
</manifestEntries>
MANIFEST.MFを使っていない場合に新たに追加しないですむのはメリットだが、それ以外は一つ目と大差なし。

最後に3つ目、mvnコマンドを引数付きで実行する方法。
Built-By の値は user.name というプロパティを使用しているようなので、mvnコマンドの実行時に値を指定してやればそちらが使用される模様。こんな感じ。
mvn package -Duser.name=honeplus
packageに限らず、assembly:assemblyとかでまとめて実行するときも同じ。
mvn assembly:assembly -Duser.name=honeplus
ちょっとビルド時に手間はかかるけど、pom.xml や MANIFEST.MF ファイルに特定の環境のための余計な記述をしなくてすむ。
個人的にはこれがお勧め。
スポンサーサイト

Tag: Java Maven2

0 Comments

Leave a comment

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。