`
somebody
  • 浏览: 81293 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用ant进行项目无忧部署

阅读更多
我们的项目比较特殊,基本上每天都要发布一次。为了不影响系统的正常使用,我们的做法是在下班之前把打包好的war放到服务器的一个目录下面(eg:d:\bak)。然后用windows的计划任务在晚上12点自动部署系统,也就是net stop tomcat,删除xx.war,删除xx,然后把d:\bak\xx.war拷贝到webapps下面。然后再net start tomcat。这样在第二天来的上班的时候就可以使用升级过的系统了。也不会影响其他人的使用,不需要中断操作。
    关于项目的一个配置我的前几篇文章我也提到过,那个upload的问题就不会发生了。还有就是关于项目开发中的一些问题。比如数据库的连接地址,upload directory的配置等,这些在团队中的每个人都是不一样的,那么在发布的时候都要改成服务器上的正确配置,如果一个月部署一次这到没有什么。但是像我们这样每天部署就不是那么轻松了。而且如果一时不注意很容易造成配置的不正确。所以对于很多配置文件我们都有两份。一份是用户自己开发用的,一份是部署到服务器的配置,这样在开发的时候团队中的每个人都不一样,关于服务器的配置都是一样的,在发布的时候是用的服务器的配置而不是用开发用的配置。eg:web.xml(个人的配置)web-dest.xml 而关键的配置也就是下面这段。
web.xml
    <context-param>
        
<param-name>contextConfigLocation</param-name>
        
<param-value>
            classpath:spring/*_context.xml,
            classpath:spring/global.xml 

        
</param-value>
    
</context-param>
web-dest.xml
    <context-param>
        
<param-name>contextConfigLocation</param-name>
        
<param-value>
            classpath:spring/*_context.xml,
            classpath:spring/global-dest.xml,
            classpath:spring/scheduler.xml
        
</param-value>
    
</context-param>
注意到其中不一样的。dest里少了scheduler.xml这个主要是定时执行的一些任务,一般在开发的时候都不需要,去掉也可以提升速度,也不会出现那么多的log。还有就是发布的web.xml用了global-dest.xml这个是关于spring的总的配置。
global.xml
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        
<property name="driverClassName"><value>net.sourceforge.jtds.jdbc.Driver</value></property>
        
<property name="url">
            
<value>jdbc:jtds:sqlserver://192.168.0.240:1433/fivefortunes;SelectMethod=cursor</value>
            
</property>
        
<property name="username"><value>sa</value></property>
        
<property name="password"><value></value></property>
    
</bean>
    
    
<bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        
<property name="driverClassName"><value>net.sourceforge.jtds.jdbc.Driver</value></property>
        
<property name="url">
            
<value>jdbc:jtds:sqlserver://192.168.0.240:1433/outmail;SelectMethod=cursor</value>
            
</property>
        
<property name="username"><value>sa</value></property>
        
<property name="password"><value></value></property>
    
</bean>
    
    
<bean id="customDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        
<property name="driverClassName"><value>net.sourceforge.jtds.jdbc.Driver</value></property>
        
<property name="url">
            
<value>jdbc:jtds:sqlserver://192.168.0.240:1433/custom;SelectMethod=cursor</value>
            
</property>
        
<property name="username"><value>sa</value></property>
        
<property name="password"><value></value></property>
    
</bean>
global-dest.xml
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        
<property name="driverClassName"><value>net.sourceforge.jtds.jdbc.Driver</value></property>
        
<property name="url">
            
<value>jdbc:jtds:sqlserver://192.168.0.5:1433/fivefortunes;SelectMethod=cursor</value>
            
</property>
        
<property name="username"><value>sa</value></property>
        
<property name="password"><value></value></property>
    
</bean>
    
    
<bean id="dataSource2" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        
<property name="driverClassName"><value>net.sourceforge.jtds.jdbc.Driver</value></property>
        
<property name="url">
            
<value>jdbc:jtds:sqlserver://192.168.0.5:1433/outmail;SelectMethod=cursor</value>
            
</property>
        
<property name="username"><value>sa</value></property>
        
<property name="password"><value></value></property>
    
</bean>
    
    
<bean id="customDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        
<property name="driverClassName"><value>net.sourceforge.jtds.jdbc.Driver</value></property>
        
<property name="url">
            
<value>jdbc:jtds:sqlserver://192.168.0.5:1433/custom;SelectMethod=cursor</value>
            
</property>
        
<property name="username"><value>sa</value></property>
        
<property name="password"><value></value></property>
    
</bean>
还有关于一些properties文件我们采用了用ant部署的时候改名字来达到目的。
build.xml
        <move file="${dist.dir}/mail.properties" tofile="${dist.dir}/mail-dev.properties" />
        
<copy file="${dist.dir}/mail-dest.properties" tofile="${dist.dir}/mail.properties" />
        
<move file="${dist.dir}/upload.properties" tofile="${dist.dir}/upload-dev.properties" />
        
<copy file="${dist.dir}/upload-dest.properties" tofile="${dist.dir}/upload.properties" />

这个是在war之前做的,大家眼看也就明白吧,就是把xx-dest.properties,改名成xx.propeties。在打完包之后
        <move file="${dist.dir}/mail-dev.properties" tofile="${dist.dir}/mail.properties" />
        
<move file="${dist.dir}/upload-dev.properties" tofile="${dist.dir}/upload.properties" />
这样就达到了我们无忧的目的了。只要每天部署的时候保证程序能正常运行,ant war一下就安心部署吧。
以上就是全部内容,如果有什么不正确欢迎砸板砖。

相关推荐

    实践项目部署文档,标准样例(使用ant 5分钟完成web项目部署)

    项目部署文档标准样例(使用Ant 5分钟完成Web项目部署) 本文档旨在提供一个标准的项目部署文档,使用Ant工具,可以在5分钟内完成Web项目的部署。整个部署过程分为四大步骤:系统要求、软件环境、部署步骤和数据源...

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

    4. **处理EJB**:如果项目包含Enterprise JavaBeans,Ant可以进行编译、打包和部署。 5. **连接服务器并部署**:使用Ant的`deploy`任务或服务器提供的脚本,将应用部署到Tomcat、JBoss、WebLogic等服务器上。 6. **...

    ant部署远程服务器

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

    ant远程上传并部署tomcat

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

    ant_shell自动部署

    "ant_shell自动部署"指的是使用Apache Ant工具结合Shell脚本实现应用的自动化部署过程。Apache Ant是一个Java库和命令行工具,主要用于构建Java项目,而Shell脚本则是Unix或Linux系统中用于执行一系列命令的脚本语言...

    Ant部署WebService服务

    总结起来,"Ant部署WebService服务"涉及到的关键技术包括Ant的使用、WebService的实现原理、CXF框架的集成以及Java项目的构建和部署流程。理解这些知识点对于Java开发者来说至关重要,特别是那些负责构建和维护...

    使用Ant进行java开发

    Ant(Another Neat Tool)是一个广泛用于Java项目管理的构建工具,尤其适用于那些需要执行诸如编译、测试、打包和部署等任务的项目。Ant的优势在于其灵活性和易用性,它使用XML(可扩展标记语言)来描述构建过程,...

    Ant远程部署tomcat脚本

    `url`、`username`和`password`则用于连接远程Tomcat的Manager应用进行部署操作。 接着,我们定义了几个主要的Ant目标: 1. `war`:打包Web应用成WAR文件。这个目标使用`&lt;war&gt;`任务来创建WAR文件,包含Web应用的...

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

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

    Ant 项目构建教程

    Ant 是一个由 Apache 开发的 Java 项目构建工具,它简化了构建、编译、测试和部署Java应用程序的过程。Ant 是基于XML的,其核心文件是`build.xml`,它包含了构建过程的所有指令和配置。 **构建Ant环境** 在使用Ant...

    ant +build.xml 文件Jenkins部署javaEE项目

    ant +build.xml 文件Jenkins部署javaEE项目,助力成功自动化部署。ant +build.xml 文件Jenkins部署javaEE项目,助力成功自动化部署。ant +build.xml 文件Jenkins部署javaEE项目,助力成功自动化部署。ant +build.xml...

    项目Ant配置实例一次下载各处使用

    本文将深入探讨在项目中如何配置Ant,以及如何利用配置好的Ant脚本在多个环境间进行灵活迁移。 首先,我们来看标题“项目Ant配置实例一次下载各处使用”。这表明我们将学习如何创建一个可复用的Ant构建脚本,该脚本...

    weblogic下ant部署的demo

    在Ant中,我们可以使用`wldeploy`任务来执行这些操作,它允许我们通过命令行进行自动化部署。 4. **build.xml**:这是Ant的构建文件,定义了构建过程的步骤和目标。在这个Demo中,`build.xml`可能包含了配置...

    antsvn更新打包部署提交自动化

    8. **Subversion操作**:Ant也可以与SVN进行集成,例如使用`&lt;svn&gt;`任务执行更新、提交、检出等操作,实现版本控制自动化。 9. **目标和依赖关系**:Ant的构建流程是由一系列目标构成的,每个目标可以依赖于其他目标...

    ant ant ant ant

    "Ant ant ant antant ant ant antant ant ant ant" 这个描述可能是在强调Ant在项目构建过程中的重复性和不可或缺性,暗示着它在工程中的频繁使用和核心地位。 Ant的设计理念是“一切都是XML”,它通过XML格式的构建...

    Ant实例 web工程部署

    【Ant实例 web工程部署】与【Ant】标签相关的知识点: Ant是一个开源的Java构建工具,它简化了构建和部署Java应用程序的过程。在Ant出现之前,Java应用的构建通常依赖于平台特定的脚本、Makefile、多种IDE以及手动...

    Ant打包编译部署工具学习笔记2(附件中含有测试项目)

    本文将深入探讨Ant工具的使用,以及如何通过它来进行项目的打包和部署。 首先,让我们理解Ant的基本概念。Ant是一个开源的Java构建工具,它最初由Jakarta项目开发,现在是Apache软件基金会的一部分。Ant的核心理念...

Global site tag (gtag.js) - Google Analytics