心無痕的博客

          常用鏈接

          統(tǒng)計

          積分與排名

          JAVA技術(shù)文檔

          JAVA精典網(wǎng)站

          開發(fā)工具

          數(shù)據(jù)庫

          最新評論

          項目研發(fā)中用到的一個對JAR進行數(shù)字簽名的ANT構(gòu)建文件(備忘錄)

          <?xml version="1.0" encoding="UTF-8"?>
          <project name="MakeTopoJar" default="deployTopoJar" basedir=".">
           <!-- 設(shè)定系統(tǒng)環(huán)境變量名為env,以備下邊使用 -->
           <property environment="env"/>
           
           <!-- 設(shè)定構(gòu)建JAR時的路徑與文件名參數(shù),注意:下邊的屬性設(shè)定時,如果屬性代表路徑,則為了適應(yīng)相應(yīng)操作系統(tǒng)可用location代替value;
             如果屬性代表文件名,則必須用value. -->
           <property name="src" value="./src" />
           <property name="webRoot" location="WebRoot"/>
           <property name="webInf" location="${webRoot}/WEB-INF"/>
           <property name="destDir" location="${webInf}/classes"/>
           <property name="classPath" location="${webInf}/lib"/>
           <property name="topoJarPath" location="${webRoot}/topo/lib"/>
           <property name="jarName" value="topo.jar"/>
           
           <!-- 數(shù)字簽名用的密鑰信息參數(shù) -->
           <property name="keystoreName" value="esmkeystore"/>

           <property name="storepass" value="esmsystem"/>
           <property name="keystore" location="${topoJarPath}/${keystoreName}"/>
           <property name="keypass" value="esmsystem"/>
           <property name="keysize" value="1024"/>
           <property name="alias" value="esmkey"/>
           <property name="validity" value="365"/>

           <property name="jarsigner" value="${env.JAVA_HOME}/bin/jarsigner.exe"/>
           
           <!-- 部署數(shù)字簽名后的JAR到TOMCAT相應(yīng)目錄 -->
           <property name="deployJarPath" location="${env.TOMCAT_HOME}/webapps/QT_ESM/topo/lib"/>

           <target name="build">
            <mkdir dir="${destDir}" />
            <javac failonerror="false" encoding="utf-8" nowarn="true" debug="true" optimize="on" srcdir="${src}"
              destdir="${destDir}" includes="com/quantanetwork/esm/**/*.java, org/acegisecurity/ui/webapp/**/*.java">
             <classpath>
              <fileset dir="${classPath}">
               <include name="**/*.jar" />
              </fileset>
             </classpath>
            </javac>
           </target>
           
           <!-- 構(gòu)建JAR文件 -->
           <target name="makeJar" depends="build">
            <copy todir="${destDir}/classes">
             <fileset dir="${src}">
              <include name="com/quantanetwork/esm/ui/topo/show/icons/*.*" />
             </fileset>
            </copy>
            <jar jarfile="${topoJarPath}/${jarName}" basedir="${destDir}"
              includes="com/quantanetwork/esm/logic/topo/**, com/quantanetwork/esm/ui/topo/**">
            </jar>
           </target>

           <!-- 創(chuàng)建證書 -->
           <target name="genericKey">
            <echo message="genkey..."/>
            <delete>
             <fileset dir="${topoJarPath}">
                 <include name="${keystoreName}"/>
             </fileset>
            </delete>

            <genkey keystore="${keystore}" storepass="${storepass}" alias="${alias}" keypass="${keypass}" keysize="${keysize}"
              verbose="true" validity="${validity}" dname="CN=Ant Group, OU=Jakarta Division, O=Apache.org, C=ZH">
            </genkey>
            <echo message="genkey... done"/>
           </target>
           
           <!-- 對JAR進行數(shù)字簽名 -->
           <target name="signJar" depends="makeJar, genericKey">
            <echo message="jarsigner..." />
            <exec executable="${jarsigner}" dir="${topoJarPath}">
             <arg line="-keystore"/>
             <arg value="${keystore}"/>
             <arg line="-storepass"/>
             <arg value="${storepass}"/>
             <arg line="${jarName}"/>
             <arg line="${alias}"/>
            </exec>
            <!-- 下邊這種方式也可以 -->
            <!--signjar keystore="${keystore}" storepass="esmsystem" jar="${jarName}" alias="${alias}">
             <fileset dir="${topoJarPath}">
              <include name="${jarName}" />
             </fileset>
            </signjar-->
            <echo message="jarsigner... done." />
           </target>
           
           <!-- 部署JAR文件 -->
           <target name="deployTopoJar" depends="signJar">
            <copy todir="${deployJarPath}" file="${topoJarPath}/${jarName}">
            </copy>
           </target>
          </project>

          posted on 2008-03-12 14:58 心無痕 閱讀(1523) 評論(1)  編輯  收藏 所屬分類: JAVA

          評論

          # http://www.perfectse.com 2008-03-12 16:22 http://www.perfectse.com

          http://www.perfectse.com
            回復  更多評論   

          主站蜘蛛池模板: 改则县| 台江县| 寿阳县| 绵阳市| 合水县| 松原市| 安徽省| 会东县| 深水埗区| 横峰县| 乐业县| 张家界市| 平凉市| 屏东市| 赤水市| 南丹县| 吉首市| 依安县| 清河县| 阿坝县| 云霄县| 阿图什市| 华亭县| 池州市| 喀什市| 普宁市| 萝北县| 南充市| 抚宁县| 安龙县| 塘沽区| 黄梅县| 兴仁县| 和平区| 鸡东县| 舒兰市| 桐乡市| 榆树市| 柳林县| 凉山| 北辰区|