Maven 项目自动部署项目脚本(jboss)
来源:互联网 发布:淘宝评价多长时间消失 编辑:程序博客网 时间:2024/06/14 11:24
在工作中,使用自动化技术部署项目是非常方便的,尤其是对于持续性迭代开发的项目。此博客仅针对于中小型项目,使用svn进行项目管理,使用maven进行模块儿管理的项目使用。这种项目一般来说,svn会键在一台单独的服务器上,maven私服又会建在 另一台私服上,也有可能建立在同一台服务器上。 针对于这种架构的项目,笔者遇到的也 就两种情况:
1. 自动化打包svn 仓库的代码,此种情况使用于项目上线
2. 自动化打包本地代码, 此种情况适用于非上线的个人测试。
这是最简单的两种方式,通常情况下,开发环境,测试环境和生成环境是一些配置 文件是不一样的,所以通常我们会在打包之前进行修改配置。虽然说目前网上 有很多开源免费的自动化部署工具,如jenkins,但是往往不能满足我们个性化的需求。而且使用起来也并不简单。在 笔者看来,在执行自动化 部署的时候,最简单的方式,莫过于使用批处理文件,直接双击一下运行就ok了。 或许有的人会说,这种方式不灵活,但是,试问一下,为什么一定要写成非常灵活呢? 定制化的才是最适合自己的,才是 最简单的。 所以笔者在 进行项目之间迁移的时候,只需要修改一下脚本中相关的参数即可。笔者只对第二种情况进行演示:
1. Maven 自动打包脚本:package.bat
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::: Maven 自动打包脚本 :::: :::: 1.切换磁盘,进入项目所在目录 :::: 2.执行install命令,保证本地仓库jar包为最新的代码 :::: 3.进入Controller所在目录 :::: 4.如果war包已经存在,则删除 :::: 5.执行package命令进行打包 :::: :::: :::: @auth:zonggf :::: @date: 2016.6.15 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 设置变量:项目所在磁盘 ,项目所在目录,项目名称set disk=D:set projectDir=D:/workset projectName=helloWorld:: 1.切换磁盘%disk%::进入项目根目录(主要是包含模块管理的pom),执行install操作,将本地代码打成最新的jar包,上传到本地仓库cd %projectDir%call mvn clean install -Dmaven.test.skip=true::如果 target 目录下已经有war包的话,则删除cd %projectName%/targetif exist %projectDir%/%projectName%.war (del %projectDir%/%projectName%.war) ::回到pom.xml 所在目录,执行maven 打包命令cd ..call mvn package -Dmaven.test.skip=truepause
2. 自动部署脚本:deploy.bat
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::: FTP 自动部署项目脚本(jboss 服务器) :::: :::: 1. 步骤: :::: 1.1 使用ftp连接服务器 :::: 1.2 重命名之前的war包,做为备份 :::: 1.3 删除之前的项目的相关部署文件,jboss会有 :::: 1.4 上传最新的war包,jboss支持热部署 :::: 2. 注意: :::: 2.1 服务器必须开启了ftp :::: 2.2 此脚本只能保证上传成功,不能保证重新部署不报错, :::: 是否能成功,重新部署,看路径下是由有 xx.deployed 文件 :::: :::: @auth:zonggf :::: @date: 2016.6.15 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::rem 1.设置变量:: 设置变量:项目所在目录, 项目名称set webModuleDir=D:/work/helloWorldset projectName=helloWorld:: 设置变量:服务器用户名,密码,ip地址, 端口号默认21set username=rootset password=123456set ip=xxx.xxx.xxx.xxxxset serverDir=/usr/zong/servers/jboss-as-7.1.1.Final/standalone/deployments::设置变量:当前时间,格式:20160615.095802for /f "tokens=2 delims==" %%a in ('wmic path win32_operatingsystem get LocalDateTime /value') do ( set t=%%a)set hour=%time:~0,2%if %hour% geq 10 (set Time=%t:~0,8%.%t:~8,6%) else (set Time=%t:~0,8%.0%t:~9,5%)rem 2. 编写ftp脚本命令@echo off:: 2.1 将 ftp相关命令写入 temp.txt 文件, > 表示清空再追加, >> 表示直接追加echo open %ip%>temp.txtecho user %username% %password% >>temp.txtecho cd %serverDir% >>temp.txt:: 2.2 将之前的war包重命名,删除之前部署的相关信息(jboss 会产生falcon-controller.war.isdeploying,falcon-controller.war.deployed, falcon-controller.war.failed 等文件)::关闭ftp交互提示echo prompt >>temp.txtecho rename %projectName%.war bk.%projectName%.war.%Time% >>temp.txtecho mdelete %projectName%.war.* >>temp.txt:: 2.3 上传新的war包echo send %webModuleDir%/target/%projectName%.war >>temp.txt:: 2.4 退出ftp连接echo bye>>temp.txtrem 3.执行ftp命令ftp -n -s:temp.txtrem 4. 删除临时命令文件temp.txtdel temp.txtpause
3. 注意事项:
1. 只能运行在windows 电脑上
2. 本地需要配置maven 环境,这样才能使用mvn命令
3. 目标服务器必须开启了ftp服务
4. 此脚本只能使用于jboss应用服务器,并不适合tomcat , 因为tomcat 会自动解压war包为目录,但是ftp命令并不提供删除非空文件夹的命令
- Maven 项目自动部署项目脚本(jboss)
- Maven 项目自动化打包部署(Jboss & Tomcat)
- 项目自动打包部署脚本
- Maven插件自动部署项目
- jboss部署web项目
- Maven实战(四)---多模块项目---JBOSS部署问题
- maven项目使用cargo自动部署:
- maven项目自动打包部署到tomcat
- maven——自动部署Web项目
- Maven自动部署项目到tomcat
- Maven项目自动部署到tomcat
- [Maven]自动部署项目到Tomcat
- maven项目自动部署tomcat配置
- Jenkins自动部署Maven 多个子项目
- Jenkins自动部署maven项目到tomcat
- Jenkins自动部署maven项目到tomcat
- maven项目自动部署到tomcat
- Maven项目自动部署到tomcat
- 利用jenkins+jmeter搭建性能测试平台
- 程序打开文件意外终止的调试-基于errorno.h
- android面试总结_2013
- Google File System阅读笔记
- 文本分类
- Maven 项目自动部署项目脚本(jboss)
- android gridview画分割线,如图:
- DLL和EXE的区别
- 安卓项目实现闪屏的功能
- overflow:hidden清除浮动原理
- Android Studio多渠道打包
- .NET一个线程更新另一个线程的UI(两种实现方法及若干简化)
- poj之旅——3977
- 闲话计算机网络中的两军问题