linux下ant的build.xml脚本

本文介绍了一个使用Ant构建Java项目的示例脚本,包括清理、编译、打包等步骤,并通过shell脚本自动化整个过程。

该脚本我是放在项目的根目录即跟src和.project等文件同级别

脚本如下:


<?xml version="1.0" encoding="UTF-8"?>  
  
<!-- 定义一个工程,默认执行任务名为warFile。 -->  
<project name="im" default="warFile" basedir=".">  
      
    <!-- 定义属性,打成war包的名称。 -->  
    <property name="warFileName" value="im.war"></property>
	<!-- tomcat根目录 -->
	<property name="tomcat.home" location="/usr/local/tomcat" />
	<!--用于存war包目录-->
	<property name="war.dir" location="/root/data/war" />
    <!-- 定义任务,清空任务:清空原有的class文件,创建新的build路径。 -->  
    <target name="clean">  
        <delete dir="${basedir}/target/build" />  
        <mkdir dir="${basedir}/target/build/class" />
        <mkdir dir="${basedir}/target/build/lib" />
    </target>
    <target name="copyjar" depends="clean">
		<!--flatten 不复制目录,主要是因为xml都属于classpath-->
		<copy includeemptydirs="false" flatten="true" todir="${basedir}/target/build/class">
			<fileset dir="${basedir}/src/main" includes="**/*.xml,**/*.properties,**/*.dll" excludes="webapp/**,**/*.jar,**/*.class"/><!-- 复制配置文件等 -->
		</copy>
		<!--复制jar包到临时目录,其实应该从/WEB-INF/lib下复制的-->
        <copy includeemptydirs="false" todir="${basedir}/target/build/lib">
            <fileset dir="/root/data/deploy/im-jar">
                <include name="**/*.jar"/>  
            </fileset>
        </copy> 
    </target>
	
	<!--需要编译的jar包-->
    <path id="libraryclasspath">
        <fileset dir="/root/data/deploy/im-jar">
			<include name="**/*.jar"/>  
		</fileset>
		<!--把tomcat的相关jar包也编译-->
		<fileset dir="${tomcat.home}/lib" includes="***.jar"></fileset>
    </path>
      
    <!-- 定义任务,编译src文件夹中的java文件,编译后的class文件放到创建的文件夹下。 -->  
    <target name="compile" depends="copyjar">  
        <javac srcdir="${basedir}/src" destdir="${basedir}/target/build"  includeantruntime="false" encoding="UTF-8" debug="true">   
            <compilerarg line="-XDignore.symbol.file"/>
			<classpath refid="libraryclasspath"/>
        </javac>  
    </target>
    
    
      
    <!-- 定义默认任务,将class文件集合成jar包。 -->  
    <target name="warFile" depends="compile">  
        <!-- 删除原有war包。 -->  
        <delete dir="${war.dir}/${warFileName}" />  
        <!-- 建立新war包。 -->  
        <war destfile="${war.dir}/${warFileName}" webxml="${basedir}/src/main/webapp/WEB-INF/web.xml">  
            <!-- 将非jar和非class文件拷贝到war包的对应路径下。 -->  
            <fileset dir="${basedir}/src/main/webapp"><!-- 源目录 -->  
                <include name="**/**.*" />  
                <exclude name="**/*.jar"/>  
                <exclude name="**/*.class"/>  
            </fileset>  
            <!-- 将jar和class文件拷贝到war包的对应路径下。(/WEB-INF/classes和/WEB-INF/lib) -->  
            <classes dir="${basedir}/target/build/class" /><!-- 源目录 -->  
			<lib dir="${basedir}/target/build/lib" /><!-- 源目录 -->
        </war>  
    </target>  
      
</project>  



编写脚本sh调用build.xml打包

#! /bin/sh
echo "**************************deploy**********************************"
cd /root/data/im-server
svn update



echo "**************************update complete!!**********************************"

ant -f build.xml 


read -p "ant is install success? [y/n] " isSuccess

if [ $isSuccess="y" ]; then
	echo "****************Release im-server Success!!!!**********************"
else
	echo "****************Release im-server error!!!!**********************"
	echo "****************exit!!!**********************"
	exit;
fi

cp -rf /root/data/im-server/target/im.war /root/data/war/

rm -rf /root/data/deploy/im-server/ROOT/*

cd /root/data/war

unzip -oq  im.war  -d /root/data/deploy/im-server/ROOT

service tomcat restart



形成war包如下:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值