Maven
跨平台的项目管理工具
Apache组织中颇为成功的开源项目
服务于java平台的项目构建,依赖管理和项目信息管理
持续集成
快速
高频率
自动
构建
所有源码
反馈
目前最流行的开源持续集成工具
http://hudson-ci.org
下面简单介绍一下Hudson Maven SVN快速搭建持续集成环境的过程,这里是基于maven的java项目配置的。
准备工作,安装maven,hudson,jdk,更新hudson的ssh,deploy,scp等插件。
hudson配置
配置maven
配置jdk
配置SSH(需要装SSh插件)
配置邮件通知
创建集成任务
选择创建一个自由风格的job,填写基本信息后需要配置一下参数:
集成任务与具体svn项目关联
集成任务的触发条件(inux crontab一样),不选择的情况下只能手动触发
构建任务配置,配置这次任务要触发的操作,可以是maven任务,ant,shell命令等等
集成完成后选择邮件通知
部署到私服
通过配置maven项目中的pom.xml中Nexus的宿主仓库地址,通过mvn的deploy命令就可以生产版本,部署构建或项目至私服
部署到服务器
方式一:通过hudson的插件Deploy war/ear to a container ,要求服务器自带manager控制台(http)
方式二: Publish artifacts to SCP Repository ,通过scp插件实现war包上传到服务器,结合执行脚本实现war报的的解压,服务器重启等工作(scp)
方式三:Execute shell script on remote host using ssh ,完全通过shell,rsync同步构建项目后生产的war包到服务器相应目录下,重启服务器(ssh rsync)
方式三shell脚本比较麻烦些,见下面:
deploy.sh:
#!/bin/bash
/home/rescenter/export1.sh
TOMCAT_DIR=/home/rescenter/manager/apache-tomcat-6.0
cd /home/rescenter/manager/manager
chmod -R 755 manager-1.0.war
jar -xf manager-1.0.war
pid=`ps -ef|grep "$TOMCAT_DIR "|grep -v grep|awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
cd $TOMCAT_DIR/bin
. ./myconfig.sh
./startup.sh
echo 'ok'
export1.sh
#!/usr/bin/expect
set timeout 30
spawn rsync -a tmg@219.239.*.*:/home/tmg/.hudson/jobs/rescenter/workspace/target/manager-1.0.war /home/rescenter/manager/manager
expect "tmg@219.239.*.*'s password:"
send "password/r"
interact
总结:
带来的好处:
减少风险(尽早发现缺陷并修复缺陷)
减少重复的过程(代码编译,数据库集成,测试,评审,部署,信息反馈)
产生可部署的软件(任一点产生可以安装的软件包)
使得项目更加透明(可以查看构建历史和项目变更)
阻止团队使用持续集成的因素
太多的变更(改变现有的开发习惯和修改旧项目)
太多失败的构建(提交到svn代码要在本地构建成功后提交)
额外硬件成本(独立的集成构建主机)
maven学习曲线较陡
分享到:
相关推荐
Hudson+Maven+SVN搭建持续集成环境
Hudson+Maven+SVN 搭建持续集成环境
Hudson+Maven+Svn搭建持续集成环境.docx,非常不错
Hudson+Maven+SVN_快速搭建持续集成环境.docx
NULL 博文链接:https://hyw520110.iteye.com/blog/1059661
Hudson+Maven+SVN 快速搭建持续集成环境
hudson svn maven 自动构建 deploy pom
Hudson持续集成环境搭建过程,包含svn,maven,checkstyle,pmd,findbugs,sonar,jdepend,site,javadoc,Cobertura
使用Hudson、Maven以及SVN进行持续化集成项目,实现项目的自动化构建、部署。
使用maven、nexus、hudson、svn、sts进行持续集成开发环境搭建
持续集成-SVN+Maven+Hudson+Sonar PPT讲解,持续集成的原理
Hudson+Sonar+Maven+SVN详细集成介绍
maven+springmvc+mybatis集成svn+hudson
工作内容:利用开源的可持续集成工具,实现java项目的自动编译、打包、发布等工作流程; 具体工作内容如下: 一、 自动化部署的环境搭建; 二、 Maven对web项目的编译、打包与发布; 三、 Hudson对web项目实现自动化...
nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建:基于敏捷开发流程及持续集成理念,通过工具,搭建软件开发和自动化测试的环境,提高开发效率,简化管理流程;此为部分一
nexus+svn+jenkin_hudson+maven+禅道项目管理软件环境搭建二,继之前第二部分
hudson 安装包 subversion 安装包 maven 包 hudson depoly 插件 UTF-8 BOM去除工具
Hudson+Maven+Svn配置[归纳].pdf
hudson+maven+svn的简单自动化部署,目前本人已经使用在现网了、简单实用。已经说明所有步骤,看着练习就可以使用发布了
NULL 博文链接:https://a601167866.iteye.com/blog/1561410