(基于Jenkins + SVN + Ant + Weblogic Server的)应用程序自动(/一键)部署的设想

一直想实现自动部署,这里说的自动部署,是指点击一个按钮(或定时执行),让计算机将最新的应用程序发布到相应的环境(UAT或PRD)中。

自动部署的意义

自动部署能省去繁琐的人工发布步骤;如配置得当,发布的执行稳定性(成功率)会比较高。

这样主要有几点意义:

  • 避免繁琐的人工发布。在开发阶段,User总比我们着急,希望快些看到新开发完成的模块,并进行适当的UAT测试。这就可能要求我们完成一个模块的开发和测试后,及时发布到UAT环境中。这时,如果我们配置好定时自动部署。这将避免了繁琐工作,事半功倍。
  • 严谨。如果发布的流程比较复杂,发布过程由人工操作不可避免地会产生粗心的失误。而使用计算机帮忙调度发布的各个动作,如果配置正确,那么失误的可能性将大大降低,除非当初假设的环境参数发生改变。

我们开发中常用的软件组合为:Java + SVN(版本控制工具) + Ant(编译打包工具) + Weblogic(Web Server)。

所以我也是以这一套组合为设想,再加上自动部署工具Jenkins。

大家用的工具不尽相同,但工具间的使用或遵循的规范类似,所以切换应该是可行的。比如现在使用的Web Server是Weblogic,需要切换成Tomcat或Jboss,应该问题不大(但本人没试过- - !)。

以前做过上述的设想,但一直卡在Weblogic的更新问题上:如何使用脚本让Weblogic更新我们的应用程序。

最近仔细看了Weblogic文档,发现调用weblogic.Deployer能很好地满足我的需求。

发布的思路

那么,自动部署的思路是,使用Jenkins作为任务的总调度师

  1. Jenkins首先调用SVN更新代码。
  2. Jenkins再调用Ant将工程打成war。并拷贝到指定目录,这里的指定目录指Web Server读取源文件的目录(这个过程可由Ant的build.xml完成,也可由一个单独的脚本完成)。
  3. Jenkins再调用一个写好的脚本触发Web Server更新应用程序。比如,使用的是Weblogic,那么这个脚本中就可以使用weblogic.Deployer更新应用程序。

如何更新Weblogic部署的应用程序

weblogic.Deployer是class,所以执行时需附上对应classpath,JAR在$WLS_HOME/server/lib/weblogic.jar。

我使用redeploy的参数实现更新应用程序:

java -cp $WLS_HOME/server/lib/weblogic.jar weblogic.Deployer -adminurl t3://xx.xx.xx.xx:7001 -username weblogicusername -password weblogicpassword -name appname -redeploy

Call Redeploy App

PS,附上weblogic.Deployer的帮助信息:

Usage: java weblogic.Deployer [options] [action] [Deployment units(s)]

where options include:
-help Print the standard usage message.
-version Print version information.
-adminurl <<protocol>://<server>:<port>> [option] Administration
server URL: default t3://localhost:7001
-username <username> [option] user name
-password <password> [option] password for the user
-userconfigfile <userconfigfile> [option] The user config file
contains the user security credentials; it
is administered by the weblogic.Admin tool
-userkeyfile <keyConfigFile> [option] The users key file; it is
administered by the weblogic.Admin tool.
-distribute [action] Distribute application to the
targets.
-start [action] Makes an already distributed
application available on a target.
-stop [action] Makes an application unavailable on
targets.
-redeploy [action] Replace a running application
partially or entirely.
-undeploy [action] Take an application out of service.
-deploy [action] Make an application available for
service.
-update [action] Update an application configuration
in place.
-examples [option] Displays example usage of this tool.
-name <application name> [option] Defaults to the basename of the
deployment file or directory.
-targets <<target(s)>> [option] A comma separated list of targets
for the current operation. If not specified,
all configured targets are used. For a new
application, the default target is the
administration server.
-plan <Deployment plan path> [option] Specifies location of
deployment plan
-library [option] Indicates that the unit being
deployed is a library. This option is
required when the application is a library.
-advanced Print advanced usage options.

The optional trailing arguments are deployment units and may
represent the archive being deployed, the name of a previously
deployed application or a list of files for a partial redeploy operation.

时间: 2024-10-02 09:26:35

(基于Jenkins + SVN + Ant + Weblogic Server的)应用程序自动(/一键)部署的设想的相关文章

Jenkins+svn+ant+tomcat持续集成

Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作.通过Jenkins+svn+ant+tomcat整合,可以完成对系统源代码的下载更新,以及代码的自动编译打包和项目的自动部署工作,而且项目的自动构建与平台无关,可以定时操作,从而使得测试人员脱离开发人员. 1.Jenkins工作原理 Jenkins是一个管理者,定时从svn获取更新的代码,拷贝到自己的workspace,然后利用ant将源码编译并生成war包,拷贝到tomcat的webapp目录下,再调用tomcat启动

jenkins+svn+Ant+tomcat+非maven项目构建

首先,输入项目名称,创建一个自由风格的项目; 然后,配置旧项目的策略参数,目的是防止构建项目太多,占用资源. 下一步,jdk版本选择: 下一步,关联svn项目. 下一步:配置ant 看不清,再来一张. 下一步,构建: 下一步,配置tomcat: 最后,点击应用->保存. 然后我们选择[立即构建] 运行起来,肯定会报错,因为我们使用ant发布,需要配置build.xml文件. 我的build.xml文件在项目根目录下,如图: 内容如下(该文件中的路径是根据自己项目路径为准,会进行个别的变动,要不然

基于jenkins搭建一个持续集成服务器

1 引言 1.1 编写目的 指导质量管理部,业务测试组同事进行Jenkins环境部署,通过Jenkins解决测试环境不可控,开发测试环境不一致等问题. 1.2 使用对象 质量管理部.基础研发部,集成部署部及EMT 目标受众: 本文的预期受众是从事持续交付或持续自动测试工作的软件工程师.要想按照本文中的步骤进行操作,您应该理解: 脚本开发. 软件开发流程. 1.3 持续集成概述 1.3.1 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成

基于Jenkins的自动构建系统开发_android总结

持续集成相关理论 1.1 极限编程的概述 1.1.1 极限编程的产生 2001年,为了解决许多公司的软件团队陷入不断增长的过程泥潭,一批业界专家一起概括出了一些可以让软件开发团队具有快速工作.响应变化能力的价值观和原则,他们称自己为敏捷联盟.敏捷开发过程的方法很多,主要有:SCRUM,Crystal,特征驱动软件开发(Feature Driven Development,简称FDD),自适应软件开发(Adaptive Software Development,简称ASD),以及最重要的极限编程(

基于 Jenkins 快速搭建持续集成环境

持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础.Jenkins 是一个开源软件项目,旨在提供一个开放易用的软件平台,使持续集成变成可能.本文正是从持续集成的基本概念入手,通过具体实例,介绍了如何基于 Jenkins 快速搭建持续集成环境. 持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变

Windows+java+jenkins+maven+ant+sonar+sonar-runner安装部署技术手册

1.安装和配置JAVA的jdk环境 到oracal网站http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html,下载java的jdk安装包,如:jdk-7u55-windows-x64.exe 安装jdk-7u55-windows-x64.exe,默认下一步即可(安装路径可以自定义). 配置环境变量: 右击"我的电脑"-->"属性",在弹出的"

jenkins+testng+ant+webdriver持续集成测试

我的需求: 1.webdriver代码放在svn上: 2.hudson(jenkins)去执行构建,它从svn上下载代码,并利用testng.xml来执行我设置好的测试套件: 3.接上,将结果放在指定位置: 我的设备: 开发工具:intellij idea 自动化工具:webdriver(selenium2.0) 持续集成工具:hudson(它的插件需要安装seleniumhq,testng,ant)这些都可以下包来安装也可以自动安装.ANT我用的是1.8.3版本 PS:我的svn及hudson

一个基于Maven项目Ant的构建模板

一般的我创建的项目都是基于Maven的,但是很多人也喜欢用Ant打包jar,或者war.我一般都会在项目中既包含Maven的pom.xml,也会有ant的build.xml 只要在控制台执行: ? 1 mvn dependency:copy-dependencies 然后执行: ? 1 ant OR ant javadoc 就会打包程序或者生成项目的Javadoc文档. 打包的程序一般在:${project.path}/target/dist/${version}/ JavaDoc文档一般在${

基于Jenkins持续集成CI

持续集成强调开发人员提交了新代码之后,立刻进行构建.(单元)测试.根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起. 持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中.比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试.如果代码没有问题,可以继续手动部署到生产环境中 持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化. 集成:是指软件个人研