`

利用Ant,将Java工程自动部署到服务器

阅读更多
linux
<!-- 先将工程文件打包 -->
  <tar destfile="./ant-project/release/xxxxx-online.tgz"
      basedir="./ant-project/dist"compression="gzip">
  </tar>
  
<!-- scp将打包文件上传到linux,停tomcat,删除文件,解压新包 -->
  <scp file="./ant-project/release/xxxxx-online.tgz" 
       todir="root:xxxxxap@172.16.131.101:/xxxxx/ap/bin/" trust="true"/>
  <sshexec host="172.16.131.101" username="tomcat" password="tomcat" command="
    cd /xxxxx/ap/bin;shutdown.sh;rm -rf online;tar zxvf xxxxx-online.tgz;rm -rf online2;
    cp -rf online online2;rm -rf online3;cp -rf online online3;startup.sh" trust="true" />

<!-- 解压的shell文件,赋予执行权限 -->
  <scp file="./ant-project/release/xxxxx-job.tgz" 
    todir="root:xxxxxap@172.16.131.101:/xxxxx/ap/" 
       trust="true"/>
  <sshexec host="172.16.131.101" username="xxxxx" password="xxxxx" 
    command="cd /xxxxx/ap/;tar zxvf xxxxx-job.tgz;cd job/bin;chmod 755 *.sh;cd ../lib;chmod 755 *.dat" trust="true"/>

<!-- 重启tomcat -->
  <target name="restart_tomcat">
    <sshexec host="172.16.131.101" username="tomcat" password="tomcat" 
        command="shutdown.sh;sleep 2;startup.sh" trust="true" />
  </target>



windows
<project default="tomcat.start" name="anchannel" basedir=".">
  <property file="build.properties" />

  <target name="init">
    <delete dir="${temp.dir}" />
    <mkdir dir="${temp.dir}" />
  </target>

  <!-- 从CVS SERVER上取的项目 -->
  <target name="checkout" depends="init">
    <!-- 生成CVS连接的权限信息 -->
    <cvspass cvsroot="${cvsroot}" password="${cvs.password}" passfile="${cvs.passfile}" />
    <echo message="开始下载src" />
    <cvs cvsroot="${cvsroot}" command="checkout" package="${cvs.package.src}" 
        dest="${temp.dir}/cvs_dir" 
      passfile="${cvs.passfile}"/>
    <echo message="开始下载html" />
    <cvs cvsroot="${cvsroot}" command="checkout" package="${cvs.package.html}" 
        dest="${temp.dir}/cvs_dir" 
      passfile="${cvs.passfile}" />
    <echo message="开始下载config" />
    <cvs cvsroot="${cvsroot}" command="checkout" package="${cvs.package.config}"
        dest="${temp.dir}/cvs_dir" 
      passfile="${cvs.passfile}" />
  </target>

  <!-- 编译文件 -->
  <target name="compile" depends="checkout">
    <echo message="开始编译" />
    <mkdir dir="${temp.dir}/classes" />
    <javac srcdir="${temp.dir}/cvs_dir/${cvs.package.src}" destdir="${temp.dir}/classes" failonerror="false" 
         debug="on" debuglevel="lines,vars,source" fork="yes" memoryInitialSize="256m" memoryMaximumSize="1024m">
      <classpath>
        <fileset dir="${lib.compile.dir}" includes="*.jar" />
        <fileset dir="${lib.project.dir}" includes="*.jar" />
      </classpath>
      <include name="**/*.*" />
      <exclude name="test/**/*.*" />
      <exclude name="**/test/*.*" />
      <exclude name="example/**/*.*" />
    </javac>
    <echo message="编译完成" />
  </target>

  <!-- 停止tomcat  -->
  <target name="tomcat.stop" depends="compile">
    <java jar="${tomcat.dir}/bin/bootstrap.jar" fork="true">
      <jvmarg value="-Dcatalina.home=${tomcat.dir}" />
      <arg line="stop" />
    </java>
    <delete dir="${project.dir}" />
    <mkdir dir="${project.dir}" />
  </target>

  <target name="tomcat.deploy" depends="tomcat.stop">
    <copy todir="${project.dir}\\WEB-INF\\classes" overwrite="true">
      <fileset dir="${temp.dir}/classes">
        <include name="**/*.*" />
      </fileset>
    </copy>
    <copy todir="${project.dir}" overwrite="true">
      <fileset dir="${temp.dir}/cvs_dir/${cvs.package.html}">
        <include name="**/*.*" />
      </fileset>
    </copy>
    <copy todir="${project.dir}\\WEB-INF\\classes" overwrite="true">
      <fileset dir="${temp.dir}/cvs_dir/${cvs.package.config}">
        <include name="**/*.*" />
      </fileset>
    </copy>
    <copy todir="${project.dir}\\WEB-INF\\lib" overwrite="true">
      <fileset dir="${lib.project.dir}">
        <include name="**/*.*" />
      </fileset>
    </copy>
  </target>

  <!-- 启动tomcat -->
  <target name="tomcat.start" depends="tomcat.deploy">
    <java jar="${tomcat.dir}/bin/bootstrap.jar" fork="true">
      <jvmarg value="-Dcatalina.home=${tomcat.dir}" />
    </java>
    <echo message="Ant任务完成" />
  </target>

  <!--     
    <target name="tomcat.debug">
      <java jar="${tomcat.dir}/bin/bootstrap.jar" fork="true">
        <jvmarg value="-Dcatalina.home=${tomcat.dir}" />
        <jvmarg value="-Xdebug" />
        <jvmarg value="-Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n" />
      </java>
    </target>

    <target name="stopTomcat">
      <exec dir="${tomcat.dir}/bin" executable="cmd.exe" os="Windows 2003">
        <arg line="/c shutdown.bat" />
      </exec>
    </target>
  
    
    <target name="startTomcat">
      <exec dir="${tomcat.dir}/bin" executable="cmd.exe" os="Windows 2003">
        <arg line="/c startup.bat" />
      </exec>
    </target>
   -->
</project>
分享到:
评论

相关推荐

    用Ant实现Java项目的自动构建和部署

    本文将深入讲解如何利用Ant来实现Java项目的自动构建和部署,包括对J2ME和J2EE项目的处理。我们将通过两个简单实例,一步步引导你熟悉Ant的使用。 首先,理解Ant的基本概念是至关重要的。Ant是一个基于XML的构建...

    ant部署远程服务器

    本教程将详细介绍如何利用Ant在Eclipse集成开发环境中部署远程Tomcat服务器上的Web应用。 首先,理解Ant的核心概念至关重要。Ant基于XML,通过任务(task)来执行各种构建操作。在`build.xml`文件中定义这些任务,...

    使用Ant进行java开发

    Ant的优势在于其灵活性和易用性,它使用XML(可扩展标记语言)来描述构建过程,这种描述性语言允许开发者定义编译源代码、运行测试、打包成JAR文件、部署到服务器等任务的具体步骤。 通过学习Ant,Java开发者可以...

    ant_shell自动部署

    在IT行业中,自动部署是提高效率、减少人为错误的关键实践。...通过"ant_shell自动部署",IT团队能够更高效、稳定地管理软件部署,提高开发运维的协同效率,降低系统风险,是现代软件工程不可或缺的一部分。

    ant自动发布工程

    "ant自动发布工程"是指利用Ant的脚本化特性,实现对Java工程的自动化发布流程,极大地提高了开发效率和减少了手动操作的错误。下面将详细阐述Ant在自动发布工程中的核心知识点。 1. **Ant基本概念** - **构建文件...

    ant远程上传并部署tomcat

    标题中的“ant远程上传并部署tomcat”是指使用Apache Ant工具执行自动化构建任务,将本地的Web应用(如WAR或EAR文件)传输到远程Linux服务器的Tomcat应用服务器上进行部署,并随后重启Tomcat服务以使更改生效。Ant是...

    windows2003中SVN服务器异机同步、自动部署Java项目全流程

    这里我们将详细介绍如何设置SVN服务器,实现代码的自动更新、编译和部署,以及如何利用Ant工具进行自动化构建。 1. **安装与配置SVN服务器** - 首先,你需要下载并安装VisualSVN Server,这是一个在Windows上运行...

    java ant发布项目到tomcat

    Java Ant是一种基于Java的构建工具,它被广泛用于自动化Java项目的构建、测试和部署过程。Ant以其XML格式的构建文件(build.xml)为特色,允许开发者定义任务序列,这些任务可以包括编译源代码、创建JAR文件、打包...

    Ant部署WebService服务

    - 部署阶段:Ant可以使用特定的应用服务器任务(如Tomcat的`deploy`任务)将WAR包上传到服务器。 4. **Apache CXF与Ant**: - CXF是一个流行的Java EE WebService框架,支持SOAP和RESTful服务。 - 使用Ant与CXF...

    各服务器部署war

    【标题】"各服务器部署WAR"涉及的知识点主要围绕Java Web应用的部署,特别是将WAR(Web ARchive)文件部署到不同的服务器环境。WAR文件是Java Web应用程序的标准打包格式,它包含所有必要的资源,如Java类、HTML、...

    ant 打包 java project 为ant

    11. **持续集成(Continuous Integration,CI)**:Ant也常用于CI服务器,如Jenkins,自动执行构建、测试和部署流程。 总结起来,Ant作为Java项目管理的强大工具,可以帮助开发者自动化处理项目的构建过程,包括...

    Java Development with Ant.pdf

    例如,可以演示如何从零开始构建一个完整的Java Web应用,包括编写源代码、编写测试用例、构建、打包以及部署到服务器等全过程。 **Ant在开发项目中的应用** 在大型Java开发项目中,Ant的应用非常广泛。它可以极大...

    JEECG 平台实现增删改查以及将项目部署到服务器流程

    本文将深入探讨如何利用JEECG实现这些基本功能,并详细讲解如何将项目部署到服务器上。 首先,让我们了解一下JEECG平台的核心特点。JEECG采用MVC设计模式,支持Spring Boot、MyBatis等主流框架,内置了丰富的插件,...

    java项目ant打包脚本

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

    weblogic下ant部署的demo

    在这个特定的Demo中,Ant被用作WebLogic的部署工具,它可以自动打包、构建和部署应用程序到WebLogic服务器,提高开发和运维的效率。 【主要知识点】: 1. **Apache Ant**:Ant是一个开源的构建工具,类似于Make或...

    ant.rar java的架包ant

    5. 部署:Ant可以将构建结果发布到远程服务器,实现自动化部署。 三、Ant的优点 1. 平台无关性:基于Java的Ant可以在任何安装了Java的平台上运行。 2. 可扩展性:Ant提供了丰富的内置任务,同时允许用户自定义...

Global site tag (gtag.js) - Google Analytics