`

ant 使用

 
阅读更多

  

1 shell 脚本自动部署到服务器,脚本有点笨拙,以后可以改进 

#!/bin/sh
#更新svn    /opt/project_name 项目svn目录
svn update /opt/project_name

echo "update success ======="

echo "------------------ant begin--- ant在项目中-------------"
ant -f /opt/project_name/ant-build.xml
echo "--deleting zhe project last version------"

#--删除以前部署的项目 
rm -rf /opt/project/project_name/
echo "complete delete last version ---"

#-- 移动编译好的项目到工程目录中
mv  /opt/uc_master/build/WebRoot /opt/project/project_name
echo "--deploy project complete  SUCESS -------" 

#等待回车关闭 窗口 
read 
 

 

   1  ant打发布包实例:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--basedir="."   当前目录为工作目录 -->
<project basedir="." name="rc" default="test">
	<property environment="env" />
	<property name="target" value="1.7" />
	<property name="source" value="1.7" />
	
	<property name="src" value="${basedir}/src" />
	<property name="build" value="${basedir}/build" />
	<property name="webroot.dir" value="WebRoot" />
	<property name="web.dir" value="${webroot.dir}/WEB-INF" />
	<property name="lib.dir" value="${web.dir}/lib" />
	<property name="tomcat.lib" value="D:\Program Files\apache-tomcat-7.0.28\lib" /> <!-- 不同的机器改成对应的路径 -->
	<!--个人机器的工程名称,需要修改-->
	<property name="Webcontent.dir" value="WebContent" />
	
	<echo message="${lib.dir}" />
	<path id="rc.classpath">
		<fileset dir="${lib.dir}">
			<include name="*.jar" />
		</fileset>
		<!-- All Jars in /tomcatlib -->
		<fileset dir="${tomcat.lib}">
			<include name="*.jar" />
		</fileset>
	</path>
	<!--创建目录结构 ,并且拷贝源目录下的文件到build下面 -->
	<target name="init">
		<mkdir dir="${build}/${webroot.dir}" />
		<mkdir dir="${build}/${web.dir}" />
		<mkdir dir="${build}/${web.dir}/classes" />
		<mkdir dir="${build}/${lib.dir}" />
		<copy todir="${build}/${webroot.dir}">
			<fileset dir="${Webcontent.dir}">
				<include name="WEB-INF/**" />
				<include name="**" />
			</fileset>
		</copy>
	</target>
	<!--删除目录结构 -->
	<target name="clean">
		<delete dir="${build}/${webroot.dir}" />
		<delete dir="${build}/${web.dir}" />
		<delete dir="${build}/${web.dir}/classes" />
		<delete dir="${build}/${lib.dir}" />
		<delete dir="${build}/project.war" />
	</target>
	
	<target depends="clean,init" name="build">
		<echo message="${ant.project.name}: ${ant.file}" />
		<copy todir="${build}/${web.dir}/classes"> <!-- 复制src下面的配置文件到classes目录 -->
			<fileset dir="${src}">
				<include name="*.xml" />
				<include name="*.properties" />
			</fileset>
		</copy>
		<javac debug="true" debuglevel="lines,vars" destdir="${build}/${web.dir}/classes" encoding="utf-8" classpathref="rc.classpath" includeAntRuntime="false">
			<!--可以写多个src标签 -->
			<src path="${src}" />
		</javac>
	</target>
	<!--打war包 -->
	<target name="antwar" depends="build" description="打war包">
		<war warfile="${build}/project.war" webxml="${build}/${web.dir}/web.xml">
			<lib dir="${build}/${lib.dir}">
				<include name="**" />
			</lib>
			<classes dir="${build}/${web.dir}/classes" />
			<fileset dir="${build}/${webroot.dir}" />
		</war>
	</target>
	<!--测试用的-->
	<target  name="test">
	      <echo message="The base dir is:${basedir}/src"/>
	</target>
</project>

 2  ant打jar包的实例 

   

<?xml version="1.0" encoding="GB2312" standalone="no"?>
<project basedir="." default="usage" name="CountHadoop"> <!-- ====此处需要修改====工程名 -->
<!-- 工程名,没有被引用,可以不改 -->
      <property name="project-name" value="CountHadoop"/> <!-- ====此处需要修改====.jar文件名 -->
      <property name="lib" value="lib"/> <!-- lib-->
      <property name="src" value="src"/> <!-- src-->
      <property name="tar" value="bin"/> <!-- bin -->
      <property name="jar-file-name" value="${project-name}.jar"/>
      <property name="main-class" value="org.tony.mr.test.WordCount2"/> <!-- ====此处需要修改====main-class-->
      <!--相关的jar包 -->
      <path id="Third-Part Lib">
            <fileset dir="${lib}">
                  <include name="**/*.jar"/>
            </fileset>
      </path>
      <target description="Build file usage info (default task)" name="usage">
            <echo message=" "/>
            <echo message="  ${project-name} "/>
            <echo message="-------------------------------------------------------"/>
            <echo message="  Available Targets:"/>
            <echo message="  compile    - Compiles the source code"/>
            <echo message="  clean      - Delete class files and .jar file"/>
            <echo message="  jar        - Generate an .jar for source code"/>
            <echo message="  run        - Execute Main-Class"/>
            <echo message="-------------------------------------------------------"/>
      </target>
	  <!--创建bin目录-->
      <target name="prepare">
            <mkdir dir="${tar}"/>
      </target>
      <!--删除bin目录下的所有目录和文件-->
      <target name="clean">
            <delete dir="${tar}"/>
            <delete file="${jar-file-name}"/>
      </target>
      	<!--拷贝src下的所有目录到bin中 -->
    <target name="copy-res">
        <copy todir="${tar}">
            <fileset dir="${src}">
                <exclude name="**/*.java"/>
            </fileset>
        </copy>
    </target>
      <target depends="clean,prepare,copy-res" name="compile">
            <javac debug="true" deprecation="true" destdir="${tar}" failonerror="true" srcdir="${src}">
                  <classpath refid="Third-Part Lib"/> 
            </javac>
      </target>
     
	    <!-- 注意:classpath="${tar}" 一定要加上,否则会报"java.lang.NoClassDefFoundError"的错误!-->
	    <!--
	    <target depends="compile" name="run">
	        <java classname="${main-class}" classpath="${tar}" fork="true" maxmemory="256m">
	              <classpath refid="Third-Part Lib"/> 
	        </java>
       </target>
		-->
	  <!--Main-Class:运行的主类, Class-Path:相关的jar文件-->
      <target depends="compile" name="jar">
       		 <pathconvert property="mf.classpath" pathsep=" ">
                   <path refid="Third-Part Lib" />
                   <flattenmapper />
               </pathconvert>
            <jar basedir="${tar}" destfile="${jar-file-name}">
                  <manifest>
                        <attribute name="Main-Class" value="${main-class}"/>
                        <attribute name="Class-Path" value="${mf.classpath}"/>
                  </manifest>
            </jar>
      </target>
</project>

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics