`

ant脚本(部署应用)

阅读更多
最近在部署应用时,遇到一个问题,就是ant脚本登录到linux机器上执行部署命令时,不知如何去写脚本。不知有没有哪位同学做过?
以下是我的ant脚本:
<?xml version="1.0" encoding="UTF-8"?>
<project name="taxs_Admin" default="usage">

	<!-- system environment variables config -->
	<property environment="env" />
	<property file="build.properties" />

	<!-- project config information -->
	<property name="project.home" value="${basedir}" />
    <tstamp>
        <format property="TIME" pattern="yyyyMMddHHmm" />
    </tstamp>
    <property name="build.version" value="${project.version}.v${TIME}" />

	<!-- usage message -->
	<target name="usage" description="usage">
		<echo>此脚本运行的前提条件是:</echo>
		<echo>1.因为运行环境是tomcat,所以设置系统环境变量CATALINA_HOME指向tomcat所在目录.</echo>
		<echo>
		</echo>
		<echo>运行方式:</echo>
		<echo>1.ant build - 根据最新代码生成应用包;</echo>
	</target>

	<!-- compile config information -->
	<property name="compile.version" value="1.6" />
	<property name="compile.java.encoding" value="GBK" />
	<property name="compile.jsp.encoding" value="UTF-8" />
	<property name="compile.optimize" value="off" />
	<property name="compile.debug" value="true" />
	<property name="compile.failonerror" value="true" />
	<property name="compile.deprecation" value="true" />

	<!-- build config information -->
	<property name="build.home" location="${project.home}" />
	<property name="src.main.java" location="${build.home}/src/" />
	<property name="src.main.web" location="${build.home}/WebRoot/" />
	<property name="library.path" location="${build.home}/WebRoot/WEB-INF/lib/" />
	<property name="library.container" location="${env.CATALINA_HOME}/lib/" />
	<property name="tomcat.home" location="${tomcat.home}"/>
	<property name="test.tomcat.home" location="${test.tomcat}"/>

	<!-- package config information -->
	<property name="target.dir" location="${project.home}/target" />
	<property name="classes.dir" location="${target.dir}/classes" />
	<property name="jasper.dir" location="${target.dir}/jasper" />
	<property name="war.dir" location="${target.dir}/war"/>
	<property name="web.dir" location="${target.dir}/web"/>
	<property name="zip.dir" location="${target.dir}/zip"/>
	
	<!-- Global classpath config -->
	<path id="master-classpath">

		<!-- Project class files -->
		<pathelement path="${classes.dir}" />
		<!--Project lib files-->
		<fileset dir="${library.path}">
		   <include name="**/**"/>
		</fileset>
	
		<!-- Project depend jars -->
		<fileset dir="${library.container}">
			<include name="**/**" />
		</fileset>
	</path>

	<!-- daily version build -->
	<target name="build" description="build">
		<antcall target="clean" />
		<antcall target="compile" />
		<antcall target="jspcompile" />
		<antcall target="package" />
	</target>

	<!-- Clean Application files -->
	<target name="clean" description="Clean task files">
		<delete dir="${target.dir}" />
	</target>
	
	<!-- Compile main source tree java files -->
	<target name="compile" description="Compile main source tree java files">
		<mkdir dir="${classes.dir}" />
		<javac destdir="${classes.dir}" source="${compile.version}" target="${compile.version}" encoding="${compile.java.encoding}" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}" failonerror="${compile.failonerror}">
			<src path="${src.main.java}/" />
			<classpath refid="master-classpath" />
		</javac>

		<native2ascii encoding="${compile.java.encoding}" dest="${classes.dir}" src="${src.main.java}" ext="_zh_CN.properties">
			<include name="**/*.native" />
		</native2ascii>
		<native2ascii encoding="${compile.java.encoding}" dest="${classes.dir}" src="${src.main.java}" ext="_zh_TW.properties">
			<include name="**/*.native" />
		</native2ascii>
		<native2ascii encoding="${compile.java.encoding}" dest="${classes.dir}" src="${src.main.java}" ext="_en_US.properties">
			<include name="**/*.native" />
		</native2ascii>

		<copy todir="${classes.dir}" preservelastmodified="true">
			<fileset dir="${src.main.java}">
				<include name="**/*.*" />
				<exclude name="**/*.java" />
			</fileset>
		</copy>
	</target>

	<!-- Comile JSP page to servlet witch Tomcat engine -->
	<target name="jspcompile" description="Compile main source tree java files">
		<taskdef name="jasper2" classname="org.apache.jasper.JspC">
		   	<classpath refid="master-classpath"/>
		</taskdef>
		<mkdir dir="${jasper.dir}" />
		<jasper2 validateXml="false" package="com.tenpay.taxs.jsp" uriroot="${src.main.web}" webXmlFragment="${src.main.web}/WEB-INF/generated_web.xml" outputDir="${jasper.dir}" addwebxmlmappings="true" verbose="9" listerrors="on" />
		<javac destdir="${classes.dir}"  source="${compile.version}" target="${compile.version}" encoding="${compile.jsp.encoding}" debug="${compile.debug}" deprecation="${compile.deprecation}" optimize="${compile.optimize}" failonerror="${compile.failonerror}" verbose="false">
			<src path="${jasper.dir}" />
			<classpath refid="master-classpath" />
		</javac>
	</target>

	<target name="package" description="Package application as a war">
		<mkdir dir="${war.dir}" />
		<war destfile="${war.dir}/${project.name}.war" webxml="${src.main.web}/WEB-INF/web.xml">
			<fileset dir="${src.main.web}">
				<include name="**/*.*" />
				<exclude name="WEB-INF/web.xml" />
				<exclude name="WEB-INF/lib/*.*"/>
			</fileset>
			<classes dir="${classes.dir}">
				<include name="**/*.*" />
			</classes>
			<lib dir="${library.path}">
				<include name="*.*" />
			</lib>
		</war>
        <copy todir="${war.dir}" preservelastmodified="true">
            <fileset dir="${project.home}">
                <include name="VERSION"/>
            </fileset>
        </copy>
	</target>
	<!--copy package-->
	<target name="copy" description="copy project into application" depends="build">
	   <mkdir dir="${web.dir}"/>
	   <copy todir="${web.dir}/${project.name}/ROOT">
	   	<fileset dir="${src.main.web}">
	   	 <include name="**/*.*"/>
	   	 <exclude name="WEB-INF/lib/*.*"/>
	   	</fileset>
	  </copy>
	  <copy todir="${web.dir}/${project.name}/ROOT/WEB-INF/classes">
	   		<fileset dir="${classes.dir}">
	   			   		<include name="**/*.*" />
	   		</fileset>
	  </copy>
	  <copy todir="${web.dir}/${project.name}/ROOT/WEB-INF/lib">
			<fileset dir="${library.path}">
			   			<include name="*.*" />
			   	</fileset>
	 </copy>
	</target>
	<!--deploy war to tomcat-->
	 <target name="deploy" depends="build" if="tomcat.home"
	        description="unwar into the servlet container's deployment directory">
	        <unwar src="${war.dir}/${project.name}.war"
	            dest="${tomcat.home}/webapps/${project.name}"/>
	 </target>
	<!--deploy war to test machine-->
	<target name="deploytest" depends="build" if="test.tomcat"  description="unwar into the servlet container's deployment directory">
		<unwar src="${war.dir}/${project.name}.war" dest="${test.tomcat}/${project.name}/ROOT"/>
	</target>
	<!--package zip -->
	<target name="packagezip" depends="copy" description="zip package">
		<mkdir dir="${zip.dir}"/>
		<zip zipfile="${zip.dir}/${project.name}.zip" basedir="${web.dir}">
		</zip>
	</target>
	<!--remote machines-->
	<target name="login">
	 <sshexec host="10.2.102.45"
	    username="root"
	    password="cft2008"
	    trust="true"
	    command="cd /usr/local/tomcat/
	 	 "/>
	</target>
</project>


到login任务时,随便写了个测试的命令,不知道执行了没有?
分享到:
评论

相关推荐

    Ant远程部署tomcat脚本

    本文将详细介绍如何使用Ant脚本来实现远程部署到Tomcat服务器。 首先,Ant脚本的基础结构是XML格式,如以下示例所示: ```xml ... ``` 在`&lt;project&gt;`标签内,我们定义了一系列的属性和目标(target)来完成...

    ant脚本资料ant

    - **部署应用**:根据需要,Ant可以将构建结果发布到服务器或归档存储。 5. **Ant的扩展性** - **自定义任务**:可以通过实现Ant Task接口创建自己的任务,以满足特定需求。 - **第三方插件**:许多第三方库提供...

    利用ant脚本 自动构建svn增量.docx

    这些任务包括编译源代码、创建JAR或WAR包、运行测试、部署应用程序等。Ant的主要优点在于其灵活性和可扩展性,可以根据项目需求定制各种构建流程。 **利用Ant脚本进行SVN增量构建** 1. **基本流程** - **获取代码*...

    常用的ANT蚂蚁脚本

    在ANT脚本中,部署EJB通常涉及到以下步骤: - 编译EJB源代码。 - 创建EJB JAR文件,这包含了EJB的接口、实现和部署描述符。 - 创建EAR(Enterprise Archive)文件,它是Java EE应用的容器,包含EJB JAR、WAR(Web...

    Ant脚本打包部署要点.zip_sme_打包部署!

    本文将详细讲解Ant脚本在打包部署中的要点,以及如何通过修改`common.properties`文件来设置代码分支。 首先,让我们了解Ant的基本结构。一个Ant项目通常包含一个名为`build.xml`的主配置文件,这个文件定义了构建...

    ant脚本通用模板 ant脚本通用模板

    ### ant脚本通用模板知识点详解 #### 一、Ant简介 Apache Ant 是一个Java环境下的构建工具,主要用于...以上就是一个基于Ant脚本的典型构建流程示例,通过这种方式可以自动化完成项目构建、测试及部署等一系列操作。

    Ant脚本详解说明

    Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能。在本文中,主要熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作。

    shell脚本+ant脚本

    Shell脚本和Ant脚本是两种在IT行业中广泛使用的自动化工具,主要应用于Unix/Linux系统和Java项目的构建。这里我们将深入探讨这两个概念以及它们在实际工作中的应用。 首先,Shell脚本是基于Unix/Linux命令行环境的...

    java项目ant打包脚本

    Java项目中的Ant打包脚本是开发过程中的一个重要环节,它使得开发者能够自动化构建、测试和部署应用程序。Ant是一个基于XML的构建工具,由Apache软件基金会开发,它在Java社区广泛使用,替代了早期的Makefile,因为...

    ant打包部署工具,官方下载

    Ant是Apache软件基金会下的一个开放源代码项目,它是一个基于Java的构建工具,主要用于自动化构建、测试和部署Java应用程序。Ant以其灵活性和可扩展性在Java开发者中广受欢迎,它通过XML格式的构建文件(build.xml)...

    weblogic下ant部署的demo

    【标题】"WebLogic下Ant部署的Demo"是关于如何使用Apache Ant自动化工具在Oracle WebLogic服务器上部署应用程序的一个示例。这个demo旨在简化和优化WebLogic环境中的部署流程。 【描述】WebLogic是一个功能强大的...

    ant脚本编译jar

    本文将深入探讨如何使用`Ant`脚本来编译并创建一个`JAR`文件,以此来理解`Ant`脚本的工作原理和实际应用。 `Ant`是Apache软件基金会开发的一款开源构建工具,它使用XML格式定义构建过程,具有高度可配置性和可扩展...

    ant远程上传并部署tomcat

    这里的Ant脚本被用于自动化远程部署的过程。 2. **本地代码copy到远程Linux服务器**:Ant提供了`scp`或`ftp`任务,可以用来将本地文件或目录复制到远程服务器。在这个场景中,Ant脚本会将本地的项目代码复制到指定...

    Ant和批处理脚本.rar

    本资源"Ant和批处理脚本.rar"聚焦于两种常用的自动化工具:Apache Ant和Windows批处理脚本,它们在不同场景下各有优势。 Apache Ant是一个由Apache软件基金会开发的Java库和命令行工具,其设计目标是驱动构建过程。...

    Ant 脚本详解

    Ant是Apache软件基金会下的一个Java项目,它是一个构建工具,主要用于自动化Java应用程序的构建过程,如编译、打包、测试和部署等。Ant基于XML,它的配置文件(通常命名为build.xml)描述了构建过程的各个步骤,使得...

    Ant部署WebService服务

    - IDE集成:许多Java集成开发环境(IDEs),如Eclipse和IntelliJ IDEA,都支持Ant集成,可以直接在IDE中运行Ant脚本。 - 版本控制:与Git等版本控制系统结合,可以更好地管理构建脚本和源代码。 总结起来,"Ant...

    分享一个项目的Ant脚本配制

    标题中的“分享一个项目的Ant脚本配置”表明我们将探讨的是如何使用Apache Ant工具来构建和管理Java项目。Ant是开源的构建工具,广泛应用于Java项目,它可以自动化编译、打包、测试等开发流程。 在描述中提到的...

    ant_shell自动部署

    1. **Apache Ant**: Ant是基于XML的构建工具,它的主要任务包括编译、创建JAR文件、运行测试、打包和部署应用程序。XML配置文件(通常命名为build.xml)定义了构建过程中的各种任务和依赖关系。通过Ant,开发者可以...

    ant部署远程服务器

    在IT行业中,Ant是一个常用的构建自动化工具,尤其在Java项目中,它被广泛用来编译、测试、打包和部署应用程序。本教程将详细介绍如何利用Ant在Eclipse集成开发环境中部署远程Tomcat服务器上的Web应用。 首先,理解...

Global site tag (gtag.js) - Google Analytics