# 脚本目录为代码库根目录# sh ./build.sh# 下载jdt包(使用eclipse的方式编译)mkdir jdt
cd jdt/
wget-O"eclipse-jdt.tar""http://devops.手动上传jdt包到半成品库里." --no-check-certificate
tar-xvf eclipse-jdt.tar
# 把jdt包复制到ant的依赖库里cp *.jar /opt/apache-ant-1.9.16/1ib
cd..echo"#!/bin/bash
## gbk转成utf8 iconv -f gbk -t utf-8 Xxx.java > Xxx1.java
gbk_to_utf8()
{
##判断gbk.txt是否存在
if [ -e ./gbk.txt ]; then
for item in \`cat ./gbk.txt\`
do
echo \$item
iconv -f gbk -t utf-8 \$item >\$item\"1\"
usleep 200
rm \$item
usleep 150
mv \$item\"1\" \$item
done
fi
}
## 递归查找gbk编码的文件,并把文件名写入到gbk.txt
read_dir()
{
for file in \`1s \$1\`
do
if [ -d \$1/\$file ]; then
read_dir \$1/\$file
elif [[ \"\$file\" = *.java ]]; then
echo \$1/\$file
file -b \$1/\$file|grep \"ISO-8859\"
if [ \$? -eq 0 ]; then
echo \$1/\$file >> gbk.txt
fi
fi
done
}
echo \"将gbk源码写入到gbk.txt ...\"
read_dir \`pwd\`
gbk_to_utf8
"> gbk_to_utf8.sh
chmod775 gbk to utf8.sh
# ./gbk_to_utf8.sh# cat gbk.txtecho"赋予权限"chmod777 build-war.xml
echo"修改build-war.xml"# cp -rf $(pwd) /WebRoot/WEB-INF/comp/platform/* $(pwd)/WebRoot/WEB-INF/lib# 使用测试环境的配置cat$(pwd)/WebRoot/WEB-INF/config/platform/commonCfg_uat.properties>$(pwd)/WebRoot/WEB-INF/config/platform/commonCfg.properties
sed-i's/116/103/' sra-jstl/db.properties
# 增量打包放开以下脚本# echo "获取["${oldCommitID}"]-["${newCommitID}"]的差异,生成diff.txt ..."# git diff ${oldCommitID} ${newCommitID}--name-only--diff-filter=AM > diff.txt# echo "cat diff.txt"# cat diff.txt# 关闭强制中文转译# git config --global core.quotepath offecho"开始ant..."
ant -f build-war.xml
# echo "打包文件"tar-zevf scf.tar scf.war diff.txt
echo"finish..."
编辑 build-war.xml 文件
<?xml version="1.0" encoding="GBK"?><projectbasedir="."default="war"name="scf"><!-- ant 编译日志 --><recordname="ant.log"loglevel="info"append="no"action="start"/><propertyname="sourcePath"value="."/><propertyname="deployTomcat.dir"value="."/><propertyname="findbugs.home"value="${basedir}/p3th_antlib/findbugs-3.0.1"/><propertyname="deployPath"value="${deployTomcat.dir}/WebRoot"/><propertyname="sourcePath.root"value="${sourcePath}/WebRoot"/><propertyname="webapp.root.classes"value="${deployPath}/WEB-INF/classes"/><propertyname="webapp.dir.classes"value="${deployPath}/WEB-INF/comp/platclasses"/><propertyname="lib.dir"location="${sourcePath.root}/WEB-INF/lib"/><propertyname="comp.lib.dir"location="${sourcePath.root}/WEB-INF/comp/platform"/><!-- path to the svnant libraries. Usually they will be located in ANT HOME/lib --><pathid="p3th.antlib"><filesetdir="${basedir}/p3th_antlib"><includename="**/*.jar"/></fileset></path><!-- 编译依赖的lib jar --><pathid="depend libs"><filesetdir="${lib.dir}"includes="**/*.jar"/><filesetdir="${comp.lib.dir}"includes="**/*.jar"/><pathelementlocation="${webapp.root.classes}"/><pathelementlocation="${webapp.dir.classes}"/></path><!-- 清理class文件 --><targetname="clean"><deletefile="scf.war"/><deletedir="${webapp.root.classes}"/><deletedir="${webapp.dir.classes}"/><mkdirdir="${webapp.root.classes}"/><mkdirdir="${webapp.dir.classes}"/></target><!-- 编译 --><targetname="compile"depends="clean"><!-- compiler的JDT为了生成的class与eclipse本地编译打包生成的一致 --><javacsrcdir="S{basedir}"encoding="GBK"destdir="${webapp.dir.classes}"includeAntRuntime="false"debug="true"debuglevel="vars,lines,source"compiler="org.eclipse.jdt.core.JDTCompilerAdapter"target="1.7"source="1.7"fork="true"optimize="false"><compilerargvalue="-xDignore.symbol.file"/><compilerargvalue="-preserveAllLocals"/><compilerargvalue="-nowarn"/><compilerargvalue="-xlint:-unchecked"/><classpathrefid="depend libs"></classpath></javac><!-- 以下的copy与move是为了让流水线ant打包后的文件位置与使用流水线之前eclipse本地打包的一致 --><deletedir="${webapp.dir.classes}/src-intf"/><copyoverwrite="true"todir="${webapp.dir.classes}"verbose="true"><filesetdir="src-data-auth"includes="**/*.sql"/></copy><copyoverwrite="true"todir="${webapp.dir.classes}/META-INF"verbose="true"><filesetdir="src-accounting/META-INF"/><filesetdir="src-accval/META-INF"/><filesetdir="src-carfinance/META-INF"/><filesetdir="src-cprsv/META-INF"/><filesetdir="src-ctfn/META-INF"/><filesetdir="src-customer/META-INF"/><filesetdir="src-data-auth/META-INF"/><filesetdir="src-disbursement/META-INF"/><filesetdir="src-draft/META-INF"/><filesetdir="src-intf/META-INF"/><filesetdir="src-inventory/META-INF"/><filesetdir="src-limit/META-INF"/><filesetdir="src-network/META-INF"/><filesetdir="src-order/META-INF"/><filesetdir="src-yl/META-INF"/></copy><copyoverwrite="true"todir="${webapp.root.classes}"verbose="true"><filesetdir="src-jstl"><includename="**/*.*"/><excludename="**/*.java"/></fileset></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/accounting/"verbose="true"><filesetdir="src-accounting/META-INF/jsp"includes="**/*.jsp"/></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/accval/"verbose="true"><filesetdir="src-accval/META-INF/jsp"includes="**/*.jsp"/></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/sra-carfinance/"verbose="true"><filesetdir="src-carfinance/META-INF/jsp"includes="**/*.jsp"/></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/src-cprsv/"verbose="true"><filesetdir="src-cprsv/META-INF/jsp"includes="**/*.jsp"/></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/sra-ctfn/"verbose="true"><filesetdir="src-ctfn/META-INF/jsp"includes="**/*.jsp"/></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/sra-customer/"verbose="true"><filesetdir="src-customer/META-INF/jsp"includes="**/*.jsp"/></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/src-disbursement/"verbose="true"><filesetdir="src-disbursement/META-INF/jsp"includes="**/*.jsp"/></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/src-draft/"verbose="true"><filesetdir="src-draft/META-INF/jsp"includes="**/*.jsp"/></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/inventory/"verbose="true"><filesetdir="src-inventory/META-INF/jsp"includes="**/*.jsp"/></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/src-limit/"verbose="true"><filesetdir="src-limit/META-INF/jsp"includes="**/*.jsp"/></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/sra-network/"verbose="true"><filesetdir="sra-network/META-INF/jsp"includes="**/*.jsp"/></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/src-order/"verbose="true"><filesetdir="src-order/META-INF/jsp"lincludes="**/*.jsp"/></copy><copyoverwrite="true"todir="${deployPath}/jspRoot/system/"verbose="true"><filesetdir="src-system/META-INF/jsp"includes="**/*.jsp"/></copy><moveoverwrite="true"todir="${webapp.root.classes}/com/tansun/workflow/"verbose="true"><filesetdir="${webapp.dir.classes}/com/tansun/workflow"includes="**/*.class"/></move><moveoverwrite="true"todir="${webapp.root.classes}/com/tansun/scf/filter/"verbose="true"><filesetdir="${webapp.dir.classes}/com/tansun/scf/filter"includes="**/*.class"/></move><moveoverwrite="true"todir="${webapp.root.classes}/com/tansun/scf/ireport/"verbose="true"><filesetdir="${webapp.dir.classes}/com/tansun/scf/ireport"includes="**/*.class"/></move><moveoverwrite="true"todir="${webapp.root.classes}/com/tansun/scf/quartz/"verbose="true"><filesetdir="${webapp.dir.classes}/com/tansun/scf/quartz"includes="**/*.class"/></move><moveoverwrite="true"todir="${webapp.root.classes}/com/tansun/scf/security/"verbose="true"><filesetdir="${webapp.dir.classes}/com/tansun/scf/security"includes="**/*.class"/></move><moveoverwrite="true"todir="${webapp.root.classes}/com/tansun/scf/servlet"verbose="true"><filesetdir="${webapp.dir.classes}/com/tansun/scf/servlet"includes="**/*.class"/></move><moveoverwrite="true"todir="${webapp.root.classes}/com/tansun/scf/tlds"verbose="true"><filesetdir="${webapp.dir.classes}/com/tansun/scf/tlds"includes="**/*.class"/></move><moveoverwrite="true"todir="${webapp.root.classes}/com/tansun/scf/web"verbose="true"><filesetdir="${webapp.dir.classes}/com/tansun/scf/web"includes="**/*.class"/></move><moveoverwrite="true"todir="${webapp.root.classes}/com/bamboocloud"verbose="true"><filesetdir="${webapp.dir.classes}/com/bamboocloud"includes="**/*.class"/></move><moveoverwrite="true"todir="${webapp.root.classes}/com/ec"verbose="true"><filesetdir="${webapp.dir.classes}/com/ec"includes="**/*.class"/></move><moveoverwrite="true"todir="${webapp.root.classes}/org"verbose="true"><filesetdir="${webapp.dir.classes}/org"includes="**/*.class"/></move><movefile="${webapp.dir.classes}/com/HibernateConfigurationHelper.class"todir="S{webapp.root.classes}/com"/></target><!-- 打war包 --><targetname="war"depends="compile"><mkdirdir="${deployPath}/WEB-INF/classes/login/"/><copyoverwrite="true"todir="${deployPath}/WEB-INF/classes/login/"verbose="true"file="${deployPath}/WEB-INF/config/platform/1ogin/1oginConfig.properties"/><wardestfile="${basedir}/${ant.project.name}.war"webxml="${dep1oyPath}/WEB-INF/web.xml"><filesetdir="${deployPath}"><includename="**/*.*"/><excludename="**/*.zip"/><excludename="**/*.1og"/><excludename="**/*.1og.*"/><excludename="**/1ogs/**"/></fileset><classesdir="${webapp.root.classes}"/></war></target></project>