该脚本我是放在项目的根目录即跟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包如下:




GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐