1)使用ant進行jar的打包
<native2ascii src="${project.root}" dest="${prop.tmp}" includes="build.properties" />
<property file="${prop.tmp}/build.properties"/>
<!-- Java編譯CLASSPATH -->
<path id="master-classpath">
<fileset dir="${build.lib.dir}"/>
<fileset dir="${build.extlib.dir}"/>
<fileset file="${weblogic.jar}"/>
<fileset file="${javaee.jar}"/>
</path>
<target name="clean" description="清空所有輸出文件包括build和部署目錄">
<property name="build.classes.dir" value="${build.dir}/classes" />
<property name="build.test.dir" value="${build.dir}/test" />
<delete dir="${build.classes.dir}"/>
<delete dir="${build.test.dir}"/>
<delete dir="${deploy.exploded.dir}"/>
<delete dir="${rel.dir}"/>
<delete dir="${pubjar.dir}"/>
<delete file="${deploy.ear.dir}/${project.name}.ear"/>
<delete dir="${build.dir.risk}" />
<delete dir="${build.classes.dir.risk}" />
<delete file="${deploy.ear.dir}/${project.name}-app.jar" />
</target>
<target name="compile" description="編譯Java文件" depends="init,info">
<available classname="xx.xx.PafaCoreContexton" classpathref="master-classpath" property="lib.present"/>
<fail unless="lib.present" message="給出的提示說明..." />
<javac destdir="${build.classes.dir}" target="1.6" debug="true" encoding="UTF-8"
deprecation="false" optimize="false" failonerror="true">
<src path="${src.java.dir}/com"/>
<classpath refid="master-classpath"/>
</javac>
<unzip dest="${build.classes.dir}">
<fileset dir="${extlib.dir}">
<include name="**/forkjoin_support.jar"/>
</fileset>
</unzip>
<delete includeEmptyDirs="true">
<fileset dir="${build.classes.dir}">
<include name="**/*.java"/>
</fileset>
</delete>
<!-- copy converter properties -->
<copy todir="${build.classes.dir}">
<fileset dir="${src.java.dir}" includes="**/converter/**/*.properties" />
</copy>
</target>
<target name="jar-prdTemplate" description="將產品模板打包">
<jar destfile="${pubjar.dir}/product-template.jar" >
<fileset dir="${src.jsp.dir}">
<include name="prdTemplate/**/*.*" />
</fileset>
<manifest>
<attribute name="Built-By" value="${user.name}" />
<attribute name="Specification-Version" value="${project.revision}" />
</manifest>
</jar>
</target>
<!-- 創建產品組件的jar包 -->
<target name="sdk-jar" depends="clean,compile" description="創建產品組件的jar包">
<!-- 創建目錄 -->
<mkdir dir="${deploy.exploded.dir}/jar"/>
<!-- 創建class的內容 -->
<copy todir="${deploy.exploded.dir}/jar">
<fileset dir="${build.classes.dir}/">
<include name="**/product/config/dto/**"/>
<include name="**/product/support/remotecache/dto/**"/>
<include name="**/product/common/util/**"/>
<include name="**/product/common/PRODConstants.class"/>
<include name="**/product/dto/**"/>
</fileset>
</copy>
<copy todir="${deploy.exploded.dir}/jar/com/paic/product/engine">
<fileset dir="${build.classes.dir}/com/paic/product/engine/">
<exclude name="biz/service/impl/PreProductPojoService.class"/>
</fileset>
</copy>
<copy todir="${deploy.exploded.dir}/jar/com/paic/product/support/localcache">
<fileset dir="${build.classes.dir}/com/paic/product/support/localcache/">
</fileset>
</copy>
<copy todir="${deploy.exploded.dir}/jar">
<fileset dir="${src.java.dir}/">
<include name="**/product/config/dto/**"/>
<include name="**/product/support/cache/**"/>
<include name="**/product/support/remotecache/dto/**"/>
<include name="**/product/common/util/**"/>
<include name="**/product/common/ProdRemoteCacheDataSourceDAO.java"/>
<include name="**/product/dto/**"/>
</fileset>
</copy>
<copy todir="${deploy.exploded.dir}/jar/com/paic/product/engine">
<fileset dir="${src.java.dir}/com/paic/product/engine/">
<exclude name="biz/action/CacheProductTemplateAction.java"/>
<exclude name="biz/service/impl/ProdTmplRCPojoService.java"/>
</fileset>
</copy>
<copy todir="${deploy.exploded.dir}/jar/com/paic/product/support/localcache">
<fileset dir="${src.java.dir}/com/paic/product/support/localcache/">
<exclude name="provider/**"/>
<exclude name="dao/impl/**"/>
</fileset>
</copy>
<!-- 複製sqlmap -->
<copyfile src="${src.config.dir}/biz/sqlmap-mapping-product.xml"
dest="${deploy.exploded.dir}/jar/sqlmap-mapping-product.xml" />
<copyfile src="${src.config.dir}/core/context-product-personal-dict.properties"
dest="${deploy.exploded.dir}/jar/context-product-personal-dict.properties" />
<copyfile src="${src.config.dir}/web/web-context-product.xml"
dest="${deploy.exploded.dir}/jar/WEB-INF/web-context-product.xml" />
<!-- jar文件的輸出路徑 -->
<jar destfile="${pubjar.dir}/ums-product-sdk.jar" basedir="${deploy.exploded.dir}/jar">
<manifest>
<attribute name="Built-By" value="${user.name}" />
<attribute name="Specification-Version" value="${project.revision}" />
</manifest>
</jar>
</target>
<target name="exploded-ear" depends="clean,compile" description="EAR應用(開發模式)">
<!-- 創建app ear包 -->
<mkdir dir="${app.ear}/META-INF"/>
<copy todir="${app.ear}">
<fileset dir="${build.classes.dir}/">
<include name="**/product/**"/>
</fileset>
<fileset dir="${src.config.dir}/core" >
</fileset>
<fileset dir="${src.config.dir}/formula" >
<include name="**/*.formula"/>
</fileset>
<fileset dir="${src.config.dir}/biz">
<exclude name="*.properties"/>
</fileset>
</copy>
<!-- 創建web ear包 -->
<mkdir dir="${web.ear}/APP-INF/classes"/>
<mkdir dir="${web.ear}/APP-INF/lib"/>
<mkdir dir="${web.ear}/META-INF"/>
<mkdir dir="${web.ear}/${project.name}.war/WEB-INF/lib"/>
<mkdir dir="${web.ear}/${project.name}.war/WEB-INF/classes"/>
<!-- 創建 web ear META-INF -->
<copyfile src="${src.config.dir}/app/application-web.xml" dest="${web.ear}/META-INF/application.xml" />
<!-- 創建APP-INF的內容,包含web層和biz層共用的class, jar, xml -->
<copy todir="${web.ear}/APP-INF/classes">
<fileset dir="${build.classes.dir}/">
<exclude name="**/web/**"/>
<exclude name="**/biz/**"/>
<exclude name="**/service/**"/>
<exclude name="**/integration/**"/>
<exclude name="**/action/**"/>
</fileset>
<fileset dir="${src.config.dir}/core">
<exclude name="devlog.properties"/>
</fileset>
</copy>
<copy todir="${web.ear}/APP-INF/lib" preservelastmodified="true">
<fileset dir="${build.lib.dir}">
<!-- 只引入產品工廠獨有的包,其它依賴包共享UMS的lib -->
<include name="pfs-only.jar"/>
</fileset>
</copy>
<!-- 創建WAR的內容 -->
<copy todir="${web.ear}/${project.name}.war/WEB-INF">
<fileset dir="${src.config.dir}/web">
<exclude name="*.properties"/>
</fileset>
</copy>
<!-- MessageBundle編碼轉換-->
<native2ascii src="${src.config.dir}/web"
dest="${web.ear}/${project.name}.war/WEB-INF/classes" includes="*.properties"/>
<copy todir="${web.ear}/${project.name}.war/WEB-INF/classes">
<fileset dir="${build.classes.dir}/">
<include name="**/web/**"/>
</fileset>
</copy>
<copy todir="${web.ear}/${project.name}.war">
<fileset dir="${src.jsp.dir}/"/>
</copy>
</target>