システム開発ブログ/ 産業システム部 Yahoo!ブックマークに登録 Google ブックマーク はてなブックマーク Livedoorクリップ シェア

システム開発ブログ

Twitterでilovex_officialをフォローしてください

最近の記事

カテゴリー

部署

月別アーカイブ

以前の部署別ブログ

署名付きJarファイルをAntで自動生成する

山岡
山岡 (2010年6月24日 18:54)
産業システム部 / JAVA
みなさん、こんにちは。

突然ですが、署名付きのJarファイルを作成するとき、みなさんはどのように作成していますか?
作成方法について順を追って生成していくと、次のような手順が必要になります。

1.keytoolコマンドで、署名ファイルを作成する
2.Javaファイルをビルド(コンパイル)する
3.ビルド(コンパイル)で生成されたclassファイルをJarファイルにまとめる
4.jarsignerコマンドで、署名ファイルとJarファイルから署名付きのJarファイルを生成する

1回目のkeytoolこ関しては1回実行すれば、次からはその署名ファイルを再利用することができますが、毎回同じ手順を繰り返していると2~4の手順が非常に手間になってきますよね。

そんなときにオススメなのが、Antを利用した自動生成です。
Antファイルを選択してマウスでポン!とクリックすれば、面倒な署名付きJarファイルの作成もわずか数秒で署名付きJarファイルが生成できてしまいます。

ということで、今回はそんな便利なAntを使って「署名付きJarファイルをAntで自動生成する」方法を紹介していきたいと思います。


何はともあれ、まずは下記のコードを見てください。

■create_keystore.bat
cd /d %~dp0

set aliasName=sample
set keystoreFile=sample.keystore
set signExpire=29200

if exist %keystoreFile% (del %keystoreFile%)
keytool -genkey -alias %aliasName% -validity %signExpire% -keystore %keystoreFile% < param_keystore.txt

pause

■param_keystore.txt
password
password
sample
sample
sample
Tokyo
Tokyo
jp
yes
password

■build.xml
<?xml version="1.0" encoding="UTF-8" ?>
<project name="eval_jar" default="jar" basedir="." >
  <target name="jar">
    <delete file="_sampleSigned.jar"/>
    <jar jarfile="sampleSigned.jar" index="true">
      <indexjars>
        <fileset dir="../WebContent/WEB-INF/lib">
          <include name="commons-io-1.3.2.jar" />
          <include name="log4j-1.2.13.jar" />
        </fileset>
      </indexjars>
      <fileset dir="../WebContent/WEB-INF/classes">
        <include name="jp/co/ilovex/log/*.class" />
        <include name="jp/co/ilovex/util/*.class" />
      </fileset>
    </jar>
    <signjar
      jar="sampleSigned.jar"
      alias="sample"
      storepass="password"
      keystore="./sample.keystore"
      signedjar="_sampleSigned.jar"
    />
    <copy overwrite="yes" file="_sampleSigned.jar" tofile="sampleSigned.jar"/>
    <delete file="_sampleSigned.jar"/>
  </target>
</project>

コードをずらずらと書きましたが、ひとつ注意点として、Antを使う方法でも1の署名ファイルの作成に関しては省略できません。
create_keystore.batとparam_keystore.txtを参考にして作成してください。
ここでは細かい説明は省きます。

上記の方法で、sample.keystoreの署名ファイルを作成すれば、以降はbuild.xmlのAnt実行のみで自動的に署名付きJarファイルを生成することができるようになります。
※フォルダやファイル名などの各種情報に関しては、環境に合わせて変更してください。

補足として、build.xmlの中のおもなタグについて説明します。

<delete file ~ > ...
ファイルを削除します。

<jar jarfile ~ > ...
署名なしJarファイルを作成します。ここではindex="true"にしてJarファイル内のインデックスを生成しています。

<indexjars ~ > ...
filesetタグに記述したJarファイルのインデックスを生成します。

<signjar ~ > ...
署名付きJarファイルを作成します。署名付きJarファイルを作成する上でのポイントになります。

<copy overwrite ~ > ...
ファイルを上書きコピーします。

「システム開発ブログ」へのコメントやご意見等ありましたら、 ファンページまでお願いします。  Facebook のファンページ

お問い合せ・情報はこちらの電話番号におかけください:03-3232-2525 お問合せ・資料請求はこちらをクリックしてください
ページのトップ
システム開発・一括受託開発。見積依頼受付中

システム開発専用サイト

システム開発の流れ・手順、実績など。アイロベックスのシステム開発を紹介。

VB .NETを主言語としたWebアプリケーションの開発

要件分析から保守まで、お客様の現場での問題解決だけでなく、IT経営の援護者としてトータルソリューションサービスを提供しています。

MovableType を使ったウェブサイト構築

魅力あるウェブサイトデザイン、構成はもとよりMovableTypeを使用したウェブサイトの作成、JAVA、CGIによる注文フォームの作成等、ビジネスを強力にサポートします。

フォルダーアクセス権限確認ツール『AD-Folder』

Windowsフォルダーアクセス権限確認ツール

フォルダーアクセス権限を一目で確認。使用版を無償でご利用いただけます。

スクール運営を応援する講座情報管理システム『CMS+AD for School』

Webとリアルをつなぐコンテンツマネージメントシステム

Webサイト・モバイルサイト・チラシ(PDF)・カタログ(InDesign)を、簡単かつ正確に作成できます。

「システム開発ブログ」の更新情報をTwitterで。

Twitter公式アカウントに認定されています

「システム開発ブログ」の更新情報をTwitterで。ぜひ、フォローをお願いします。