一个实际开发项目的build.xml参考

来源:互联网 发布:淘宝卖家的快递费 编辑:程序博客网 时间:2024/05/02 00:59

 <?xml version="1.0" encoding="Shift_JIS"?>

<project name="項目名称" basedir="." default="compile">
 <description >項目名称のビルド、APIドキュメント生成、JARファイル作成を行う。</description>

 <!-- ##### プロパティ定義 ##### -->
 
 <!-- ディレクトリ -->
 <property name="dir.src"             value="src"/>
 <property name="dir.lib"              value="lib"/>
 <property name="dir.javadoc"      value="docs/api"/>
 <property name="dir.bin"             value="bin"/>
 <property name="dir.web.plan"   value="web/plan"/>
 <property name="dir.web.ref"      value="web/reference"/>
 <property name="dir.dist"            value="dist"/>
 <!-- ファイル名 -->
 <property name="file.lib1"   value="sax.jar"/>
 <property name="file.lib3"   value="jaxp-api.jar"/>
 <property name="file.lib5"   value="classes12.zip"/>
 <property name="file.lib6"   value="nls_charset12.zip"/>
 <property name="file.lib7"   value="jctableK.jar"/>
 <property name="file.lib8"   value="Elxrt.jar"/>
 <property name="file.lib9"   value="license.jar"/>
 
 <property name="file.jar.plan"        value="${dir.lib}/STKPlan.jar"/>
 <property name="file.prop.plan"    value="stk_build.properties"/>
 <property name="file.mfest.plan"   value="STKPlan.MF"/>

 <property name="file.jar.ref"           value="${dir.lib}/STKReference.jar"/>
 <property name="file.prop.ref"       value="stk.properties"/>
 <property name="file.mfest.ref"      value="STKReference.MF"/>

 <property name="file.war.plan"      value="planeditor.war"/>
 <property name="file.war.ref"         value="reference.war"/>

 <property name="name.packages"  value="jp.co.gss.stk.*"/>
 <property name="file.keystore"      value="${dir.lib}/stkKeyStore"/>


 <!-- ターゲット定義 -->

 <!-- 全て実行 -->
 <target name="all" depends="clean,compile,jar,sign-jars,war" description="クリーン、コンパイル、JAR、WAR">
  <echo>all:クリーン、コンパイル、JAR、WAR</echo>
 </target>

 <!-- クラスの削除 -->
 <target name="clean" description="クラス削除">
  <echo>clean:クラス削除</echo>
  <delete dir="${dir.bin}"/>
  <delete file="${file.jar.plan}"></delete>
  <delete file="${file.jar.ref}"></delete>
 </target>

 <!-- コンパイル -->
 <target name="compile" description="コンパイル">
  <echo>compile:コンパイル</echo>
  <mkdir dir="${dir.bin}"/>
  <javac srcdir="${dir.src}"
      destdir="${dir.bin}"
      classpath="${dir.lib}/${file.lib1};${dir.lib}/${file.lib2};${dir.lib}/${file.lib3};${dir.lib}/${file.lib5};${dir.lib}/${file.lib6};${dir.lib}/${file.lib7};${dir.lib}/${file.lib8};${dir.lib}/${file.lib9};"
      debug="ON"
  />
 </target>

 <!-- APIドキュメントの生成 -->
 <target name="javadoc" description="APIドキュメント生成">
  <echo>javadoc:APIドキュメント生成</echo>
  <mkdir dir="${dir.javadoc}"/>
  <javadoc packagenames="${name.packages}"
   destdir="${dir.javadoc}"
   sourcepath="${dir.src}"
  />
 </target>

 <!-- JARファイルの作成 -->
 <target name="jar" depends="compile" description="JARファイル生成">
  <echo>jar:JARファイル生成</echo>
  <delete file="${file.jar.plan}"></delete>
  <delete file="${file.jar.ref}"></delete>
  
  <copy file="${dir.src}/${file.prop.plan}" tofile="${dir.bin}/${file.prop.plan}"/>
  <jar jarfile="${file.jar.plan}"
   basedir="${dir.bin}"
   excludes="**/reference/*"
   manifest="${dir.src}/${file.mfest.plan}"
  />

  <delete file="${dir.bin}/${file.prop.plan}"></delete>
  <copy file="${dir.src}/${file.prop.ref}" tofile="${dir.bin}/${file.prop.ref}"/>
  <jar jarfile="${file.jar.ref}"
   basedir="${dir.bin}"
   excludes="**/plan/*"
   manifest="${dir.src}/${file.mfest.ref}"
  />
  <delete file="${dir.bin}/${file.prop.ref}"></delete>
 </target>

 <!-- JARファイルへの署名 -->
 <target name="sign-jars" depends="jar" description="JARファイルへの署名">
  <echo>sign-jars:JARファイルへの署名</echo>
  <echo level="info">Signing JARS...</echo>
  <signjar jar="${file.jar.plan}" keystore="${file.keystore}" alias="myself" storepass="password"/>
  <signjar jar="${file.jar.ref}" keystore="${file.keystore}" alias="myself" storepass="password"/>
  <signjar jar="${dir.lib}/${file.lib1}" keystore="${file.keystore}" alias="myself" storepass="password"/>
  <signjar jar="${dir.lib}/${file.lib3}" keystore="${file.keystore}" alias="myself" storepass="password"/>
  <signjar jar="${dir.lib}/${file.lib5}" keystore="${file.keystore}" alias="myself" storepass="password"/>
  <signjar jar="${dir.lib}/${file.lib6}" keystore="${file.keystore}" alias="myself" storepass="password"/>
  <signjar jar="${dir.lib}/${file.lib7}" keystore="${file.keystore}" alias="myself" storepass="password"/>
  <signjar jar="${dir.lib}/${file.lib8}" keystore="${file.keystore}" alias="myself" storepass="password"/>
  <signjar jar="${dir.lib}/${file.lib9}" keystore="${file.keystore}" alias="myself" storepass="password"/>
 </target>     

 <!-- WARファイルの作成 -->
 <target name="war" depends="sign-jars" description="WARファイル作成">
  <echo>war:WARファイル作成</echo>
  <delete dir="${dir.dist}"/>
  <mkdir dir="${dir.dist}"/>
  
  <war destfile="${dir.dist}/${file.war.plan}" webxml="${dir.web.plan}/web.xml" compress="true">
   <fileset dir="${dir.web.plan}">
    <include name="**/*.html"/>
    <include name="**/*.jnlp"/>
    <exclude name="**/*.xml"/>
   </fileset>

   <fileset dir="${dir.lib}">
    <filename name="**/*.*"/>
   </fileset>            
  </war>

  <war destfile="${dir.dist}/${file.war.ref}" webxml="${dir.web.ref}/web.xml" compress="true">
   <fileset dir="${dir.web.ref}">
    <include name="**/*.html"/>
    <include name="**/*.jnlp"/>
    <exclude name="**/*.xml"/>
   </fileset>

   <fileset dir="${dir.lib}">
    <filename name="**/*.*"/>
   </fileset>            
  </war>

 </target>


</project>

 

原创粉丝点击