增补修改。

This commit is contained in:
2026-08-05 19:05:10 +08:00
parent 0685e9b5d4
commit feab15062c

240
build_war.xml Normal file
View File

@@ -0,0 +1,240 @@
<?xml version="1.0" encoding="UTF-8"?>
<project name="xinhai_wms_build" default="打包war" basedir=".">
<description>WMS/WCS 完整构建: 清理→编译→发布→打包war</description>
<property file="${basedir}/xinhai_wms.properties"/>
<property name="java.home" value="${jdk.home.1.8}/jre"/>
<property name="jdk.bin" value="${jdk.home.1.8}/bin"/>
<property name="src.dir" value="${basedir}/src"/>
<property name="lib.dir" value="${basedir}/lib"/>
<property name="classes.dir" value="${basedir}/classes"/>
<property name="deploy.dir" value="${basedir}/deploy"/>
<property name="webapps.dir" value="${basedir}/tomcat/webapps"/>
<property name="temp.dir" value="${deploy.dir}/temp"/>
<property name="wms.webroot" value="${webapps.dir}/wms"/>
<property name="wms.classes" value="${wms.webroot}/WEB-INF/classes"/>
<property name="wms.lib" value="${wms.webroot}/WEB-INF/lib"/>
<property name="wcs.webroot" value="${webapps.dir}/wcs"/>
<property name="wcs.classes" value="${wcs.webroot}/WEB-INF/classes"/>
<property name="wcs.lib" value="${wcs.webroot}/WEB-INF/lib"/>
<property name="compile.encoding" value="GBK"/>
<path id="compile.cp">
<fileset dir="${lib.dir}">
<include name="*.jar"/><include name="*.zip"/>
</fileset>
</path>
<!-- ===== 清理 ===== -->
<target name="清理">
<delete dir="${classes.dir}"/><mkdir dir="${classes.dir}"/>
<delete dir="${wms.classes}"/><delete dir="${wms.lib}"/>
<delete dir="${wcs.classes}"/><delete dir="${wcs.lib}"/>
<delete file="${deploy.dir}/wms.war"/><delete file="${deploy.dir}/wcs.war"/>
<delete dir="${temp.dir}"/><mkdir dir="${temp.dir}"/>
<echo message="清理完成"/>
</target>
<!-- ===== 编译 ===== -->
<target name="编译" depends="清理">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}" encoding="${compile.encoding}"
source="8" target="8" debug="on"
includeantruntime="false" failonerror="false" nowarn="on">
<classpath refid="compile.cp"/>
<exclude name="**/*.psd"/><exclude name="**/*.scc"/>
</javac>
<copy todir="${classes.dir}" preservelastmodified="true">
<fileset dir="${src.dir}">
<exclude name="**/*.java"/><exclude name="**/*.form"/>
<exclude name="**/*.scc"/><exclude name="**/*.psd"/>
</fileset>
</copy>
<echo message="编译完成"/>
</target>
<!-- ===== 发布 wms 服务 ===== -->
<target name="发布wms服务" depends="编译">
<mkdir dir="${wms.classes}"/><mkdir dir="${wms.lib}"/>
<copy todir="${wms.classes}" preservelastmodified="true">
<fileset dir="${classes.dir}"
excludes="*,resource/**,images/**,**/wcs/**,**/client/**,**/gui/**
,**/util/Object*,**/util/Client*,**/util/Too*,**/util/Form*
,**/wms/App*,**/wms/Ent*,**/wms/Tre*"/>
</copy>
<copy todir="${wms.classes}" preservelastmodified="true">
<zipfileset src="${lib.dir}/wmcs.zip"
includes="**/stock/Instruction.class,com/zcsoft/client/*,**/util/*
,**/stock/InstNoGenerator.class,com/zcsoft/comm/MessageHandler.class,com/zcsoft/comm/InvalidMessageException.class"
excludes="META-INF/MANIFEST.MF"/>
</copy>
<copy todir="${wms.lib}" preservelastmodified="true">
<fileset dir="${lib.dir}">
<include name="*.jar"/><include name="*.zip"/><include name="*.dll"/>
</fileset>
</copy>
<!-- 复制 GBK 编码的模板文件到 webroot直接从 deploy 模板目录,和 wms_old 一致) -->
<copy file="${deploy.dir}/index.jnlp" tofile="${wms.webroot}/index.jnlp" overwrite="true"/>
<copy file="${deploy.dir}/index.jsp" tofile="${wms.webroot}/index.jsp" overwrite="true"/>
<copy file="${deploy.dir}/wms_version.xml" tofile="${wms.webroot}/version.xml" overwrite="true"/>
<!-- 同步 css 和 script -->
<copy todir="${wms.webroot}" overwrite="true" failonerror="false">
<fileset dir="${deploy.dir}/">
<include name="css/**"/><include name="script/**"/>
</fileset>
</copy>
<!-- web.xml -->
<copy file="${deploy.dir}/wms_web.xml" tofile="${wms.webroot}/WEB-INF/web.xml" overwrite="true"/>
<echo message="wms 发布完成"/>
</target>
<!-- ===== 发布 wcs 服务 ===== -->
<target name="发布wcs服务" depends="编译">
<mkdir dir="${wcs.classes}"/><mkdir dir="${wcs.lib}"/>
<copy todir="${wcs.classes}" preservelastmodified="true">
<fileset dir="${classes.dir}"
excludes="*,resource/**,images/**,**/wms/**,**/wcs/client/**,**/wcs/*,com/zcsoft/**"/>
</copy>
<copy todir="${wcs.classes}" preservelastmodified="true">
<zipfileset src="${lib.dir}/wmcs.zip"
includes="**/stock/*,**/client/*,**/xml/*,**/util/*,**/comm/**
,com/wxzd/mcs/server/*,com/wxzd/mcs/data/*"
excludes="META-INF/MANIFEST.MF,**/stock/*Maker*,**/stock/StockMain*
,**/stock/*Pane*,**/stock/*Painter*,**/stock/*Icon*
,**/stock/FinishListener.class,*.fig,*.log,com/wxzd/mcs/client/*"/>
</copy>
<copy todir="${wcs.lib}" preservelastmodified="true">
<fileset dir="${lib.dir}">
<include name="*.jar"/><include name="*.zip"/><include name="*.dll"/>
</fileset>
</copy>
<echo message="wcs 发布完成"/>
</target>
<!-- ===== 构建 wms.jar客户端 Applet JAR ===== -->
<target name="build.wms.jar" depends="编译">
<mkdir dir="${temp.dir}"/>
<delete file="${temp.dir}/wms.jar" quiet="true"/>
<zip zipfile="${temp.dir}/wms.jar" compress="false" duplicate="preserve" basedir="${classes.dir}"
encoding="UTF-8"
excludes="*.applet,*.html,**/server/**, package*/**, com/zcsoft/**
, **/wcs/**, images/**, jsp*/**, Generated*/**
, **/base/client/Gys*.class
, **/base/client/Kh*.class
, **/base/client/Phxx*.class
, **/bbgl/client/CpSfcbb*.class
, **/bbgl/client/CpXsckFhtj*.class
, **/bbgl/client/Cw*.class
, **/bbgl/client/Djjq*.class
, **/bbgl/client/Jgfx*.class
, **/bbgl/client/Mxfx*.class
, **/jkgl/client/J**">
<zipfileset src="${lib.dir}/ASclientLib.jar" excludes="META-INF/MANIFEST.MF"/>
<zipfileset src="${lib.dir}/fastjson-1.2.41.jar" excludes="META-INF/MANIFEST.MF,META-INF/LICENSE.txt"/>
<zipfileset src="${lib.dir}/dom4j-1.6.1.jar" excludes="META-INF/MANIFEST.MF,META-INF/LICENSE.txt"/>
<zipfileset src="${lib.dir}/commons-httpclient-3.1.jar" excludes="META-INF/MANIFEST.MF,META-INF/LICENSE.txt,META-INF/NOTICE.txt"/>
<zipfileset src="${lib.dir}/commons-codec-1.10.jar" excludes="META-INF/MANIFEST.MF,META-INF/LICENSE.txt,META-INF/NOTICE.txt"/>
<zipfileset src="${lib.dir}/data.jar" excludes="META-INF/MANIFEST.MF"/>
<zipfileset src="${lib.dir}/jxl.jar" excludes="META-INF/MANIFEST.MF"/>
<zipfileset src="${lib.dir}/wmcs.zip" excludes="META-INF/MANIFEST.MF" includes="**/client/RemoteAccesser.class"/>
<zipfileset src="${lib.dir}/im.jar" excludes="META-INF/MANIFEST.MF,images/leftArrow.gif,images/rightArrow.gif"/>
<zipfileset src="${lib.dir}/wmcs.zip"
includes="**/stock/Instruction.class,**/stock/StockMaintain.class,**/stock/CellNoPane*
,**/stock/Device.class,**/stock/Chain.class
,com/zcsoft/scanner/**,com/zcsoft/comm/InvalidMessageException.class"/>
</zip>
</target>
<!-- ===== 构建 wcs.jar ===== -->
<target name="build.wcs.jar" depends="编译">
<mkdir dir="${temp.dir}"/>
<delete file="${temp.dir}/wcs.jar" quiet="true"/>
<zip zipfile="${temp.dir}/wcs.jar" compress="false" duplicate="preserve" basedir="${classes.dir}"
encoding="UTF-8"
excludes="*.applet,*.html, images/*_fm.gif, **/server/**, package*/**, com/zcsoft/**, **/wms/**, Login*.class, resource/**, jsp*/**, Generated*/**">
<zipfileset src="${lib.dir}/ASclientLib.jar" excludes="META-INF/MANIFEST.MF,resource/Ticket*.class,resource/Report*.class,
**/tools/*/client/**,**/picture/**,**/design/**"/>
<zipfileset src="${lib.dir}/data.jar" excludes="META-INF/MANIFEST.MF,**/tm/**,**/dbvisit/Case*,**/dbvisit/LV*,**/design/**"/>
<zipfileset src="${lib.dir}/im.jar" excludes="META-INF/MANIFEST.MF,images/*Arrow.gif,images/align*.gif,
images/adjust*.gif,images/*Folder.gif,images/loading.gif,
images/finish.gif,images/saveasfile.gif,images/preview.gif,
images/copy.gif,images/paste.gif,images/newfile.gif,
images/arrow.gif,images/print.gif,images/label.gif,
images/modify.gif,images/refresh.gif,images/query.gif,
images/label.gif,images/savefile.gif,images/openfile.gif"/>
<zipfileset src="${lib.dir}/wmcs.zip" excludes="META-INF/MANIFEST.MF"
includes="com/zcsoft/image/*,com/zcsoft/stock/*,com/zcsoft/xml/E*
,com/zcsoft/xml/A*,com/wxzd/mcs/client/*,com/wxzd/mcs/data/*,**/client/RemoteAccesser.class"/>
</zip>
</target>
<!-- ===== 生成keystore不存在时自动创建 ===== -->
<target name="生成keystore">
<condition property="keystore.missing">
<not><available file="${basedir}/wxzd.keystore"/></not>
</condition>
<antcall target="do-genkey"/>
</target>
<target name="do-genkey" if="keystore.missing">
<echo message="keystore 不存在,自动生成 ..."/>
<exec executable="${jdk.bin}/keytool" failonerror="false">
<arg value="-genkeypair"/>
<arg value="-alias"/><arg value="wxzd"/>
<arg value="-keystore"/><arg value="${basedir}/wxzd.keystore"/>
<arg value="-storepass"/><arg value="${app.sp}"/>
<arg value="-keypass"/><arg value="${app.kp}"/>
<arg value="-validity"/><arg value="3660"/>
<arg value="-dname"/><arg value="CN=WXZD"/>
<arg value="-keyalg"/><arg value="RSA"/>
<arg value="-keysize"/><arg value="2048"/>
<arg value="-noprompt"/>
</exec>
<echo message="keystore 生成完成"/>
</target>
<!-- ===== 完整打包 ===== -->
<target name="打包war" depends="发布wms服务,发布wcs服务,build.wms.jar,build.wcs.jar,生成keystore">
<!-- 签名客户端 JARJNLP 有 all-permissions必须签名 -->
<delete file="${wms.webroot}/WMS.jar" quiet="true"/>
<delete file="${wcs.webroot}/WCS.jar" quiet="true"/>
<signjar jar="${temp.dir}/wms.jar" signedjar="${wms.webroot}/WMS.jar"
keystore="${basedir}/wxzd.keystore" storepass="${app.sp}" keypass="${app.kp}" alias="wxzd"/>
<signjar jar="${temp.dir}/wcs.jar" signedjar="${wcs.webroot}/WCS.jar"
keystore="${basedir}/wxzd.keystore" storepass="${app.sp}" keypass="${app.kp}" alias="wxzd"/>
<!-- 清理旧 WAR 和 pack.gz 残留 -->
<delete file="${deploy.dir}/wms.war" quiet="true"/>
<delete file="${deploy.dir}/wcs.war" quiet="true"/>
<delete file="${wms.webroot}/WMS.jar.pack.gz" quiet="true"/>
<delete file="${wcs.webroot}/WCS.jar.pack.gz" quiet="true"/>
<!-- WAR直接用 jar 不压缩 -->
<jar destfile="${deploy.dir}/wms.war" basedir="${wms.webroot}"
excludes="**/web.xml **/db.properties"
compress="false" duplicate="preserve" filesonly="false"/>
<!-- 注入 web.xml -->
<jar destfile="${deploy.dir}/wms.war" update="true"
compress="false" duplicate="preserve" filesonly="false">
<zipfileset file="${deploy.dir}/wms_web.xml" fullpath="WEB-INF/web.xml"/>
</jar>
<jar destfile="${deploy.dir}/wcs.war" basedir="${wcs.webroot}"
excludes="**/web.xml,*.log,*.fig"
compress="false" duplicate="preserve" filesonly="false"/>
<jar destfile="${deploy.dir}/wcs.war" update="true"
compress="false" duplicate="preserve" filesonly="false">
<zipfileset file="${deploy.dir}/wcs_web.xml" fullpath="WEB-INF/web.xml"/>
</jar>
<echo message="========================================="/>
<echo message="打包完成"/>
<echo message="wms.war -> ${deploy.dir}/wms.war"/>
<echo message="wcs.war -> ${deploy.dir}/wcs.war"/>
<echo message="========================================="/>
</target>
</project>