下载hudson ,安装部署http://hudson-ci.org/

将下载的hudson-3.3.3.war放到tomcat的webapps目录下并启动tomcat,输入地址访问

点击Install安装Hudson核心插件

安装过程比较慢

完成后点击Finish

配置安全管理 点击 “系统管理”--》“Configure Security”

如下

点击注册填写如下信息注册一个系统管理员账户

添加插件 点击 “系统管理”--》“插件管理” 安装需要的插件,当插件安装好后需要重启一次Hudson才能生效。

Hudson全局配置信息

点击保存到如下界面

-----------------------------------------------------------------------------------------------------------------

eclipse中的项目

----------------------------------------------------------------------------------------------------------------------

新建任务和任务配置

hudson任务表示一个持续集成的项目,任务配置包括项目版本控制分支、集成任务触发器(何时触发项目集成) 
     进入“新建任务”, 输入任务名称,并选择“构建一个自由风格的软件项目”点击下一步。

其中有几点我们要留意一下,这也关系到我们是否能成功实现自动打包与部署。

"Source Code Management"
下面,我们选择“Subversion”:这意味着我们的Hudson将Subversion提供的地址作为我们的基础文件,后期也是基于此进行打包。 其中"Repository

URL"填写SVN项目地址(保证Hudson从SVN从检出的源码直接放到.hudson\jobs\当前任务\workspace目录下。即:从项目的根目录(不包括根目录)检出也就是pom.xml所在目录),其余保持默认就行即可。

第二个需要设置的为轮询策略,用来告诉Hudson用哪一种策略来执行这一个任务。

常用的为Poll SCM,通过Unix中的任务高度工具所使用的配置方式来进行配置。
以空格为分隔符,从左到右依次代表着分、时、日、月、星期
*号代替着任意时间,如* * * * *,再如*/10 * * * * 代表着每隔10分钟任务执行一次,*/10代表着能被10整除的意思。

第三步,用来设置我们的打包方式。

在Build下面,我们"Add build step"中,我们可以选择一项打包方式来将我们在第一步设置的源码进行处理。
因为我们的项目是用的Maven,所以我在此选择Invoke

Maven。那么这样Hudson就会调用Maven的打包命令,将我们的源码进行打包。选择maven的版本,然后输入maven的命令。(需要注意的是,在Hudson的服务器上面需要安装Maven,并在Hudson的系统配置中进行配置)

那么剩下的,就是需要将我们打包好的项目部署到tomcat(远程部署)中去,那么应如何做呢?
在这里我们需要用到Hudson的一个名为 over SSH的插件(没安装的请自行到Hudson的插件管理中去下),勾选“ Send build artifacts over SSH”

项目的over SSH 详细配置如下

点击Save保存进入如下界面

通过以上的配置,我们基本上就告诉了Hudson这个任务的一些基本信息了,包括调度时间("build trigger"),需管理的源码(Soruce Code Management),打包方式(Build),部署(Post-build Actions)。

点击”构建“图标进行一次构建,点击Console控制台图标查看构建日志

Started by user admin
Cleaning the workspace because project is configured to clean the workspace before each build.
Checking out a fresh workspace because there's no workspace at C:\Users\Administrator\.hudson\jobs\crm_job\workspace
Cleaning workspace C:\Users\Administrator\.hudson\jobs\crm_job\workspace
Checking out https://d1osxkijfdv9p4f:8443/svn/repo/crm/trunk revision: 2016-12-4 23:16:18 depth:infinity ignoreExternals: false
A         crm
A crm\.classpath
A crm\.project
A crm\src
A crm\src\test
A crm\src\test\java
A crm\src\main
A crm\src\main\java
A crm\src\main\resources
A crm\src\main\webapp
A crm\src\main\webapp\index.jsp
A crm\src\main\webapp\WEB-INF
A crm\src\main\webapp\WEB-INF\web.xml
A crm\pom.xml
A crm\.settings
A crm\.settings\org.eclipse.jdt.core.prefs
A crm\.settings\org.eclipse.m2e.core.prefs
A crm\.settings\org.eclipse.wst.jsdt.ui.superType.name
A crm\.settings\org.eclipse.wst.jsdt.ui.superType.container
A crm\.settings\org.eclipse.wst.common.project.facet.core.xml
A crm\.settings\.jsdtscope
A crm\.settings\org.eclipse.wst.validation.prefs
A crm\.settings\org.eclipse.wst.common.component
At revision 24
no change for https://d1osxkijfdv9p4f:8443/svn/repo/crm/trunk since the previous build
[workspace] $ "D:\Program Files\apache-maven-3.2.5\bin\mvn.bat" -f crm/pom.xml clean package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building crm Maven Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ crm ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ crm ---
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ crm ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ crm ---
[INFO] skip non existing resourceDirectory C:\Users\Administrator\.hudson\jobs\crm_job\workspace\crm\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ crm ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ crm ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-war-plugin:2.2:war (default-war) @ crm ---
[INFO] Packaging webapp
[INFO] Assembling webapp [crm] in [C:\Users\Administrator\.hudson\jobs\crm_job\workspace\crm\target\crm]
[INFO] Processing war project
[INFO] Copying webapp resources [C:\Users\Administrator\.hudson\jobs\crm_job\workspace\crm\src\main\webapp]
[INFO] Webapp assembled in [36 msecs]
[INFO] Building war: C:\Users\Administrator\.hudson\jobs\crm_job\workspace\crm\target\crm.war
[INFO] WEB-INF\web.xml already added, skipping
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.974 s
[INFO] Finished at: 2016-12-04T23:16:29+08:00
[INFO] Final Memory: 10M/228M
[INFO] ------------------------------------------------------------------------
SSH: Connecting from host [D1OSXKIJFDV9P4F]
SSH: Connecting with configuration [CentOS远程部署项目服务器] ...
SSH: EXEC: STDOUT/STDERR from command [## 远程服务器上的jdk环境
export JAVA_HOME=/usr/local/jdk1.7.0_55
export JRE_HOME=/usr/local/jdk1.7.0_55/jre ## 停止远程服务器上的 tomcat 休眠几秒后删除项目再重启
/usr/local/apache-tomcat-7.0.61/bin/shutdown.sh
sleep 3
rm -rf /usr/local/apache-tomcat-7.0.61/webapps/crm
/usr/local/apache-tomcat-7.0.61/bin/startup.sh] ...
Tomcat started.
SSH: EXEC: completed after 6,006 ms
SSH: Disconnecting configuration [CentOS远程部署项目服务器] ...
SSH: Transferred 1 file(s)
Finished: SUCCESS

来看看.hudson任务的workspace下

进入crm目录

进入target目录

运行看看效果

修改修改index.jsp后提交修改到svn

点击构建项目按钮,刷新浏览器

———————————————————————————————————————————————————————————

其他方式部署(注意:热部署必须先启动tomcat,否则会报拒绝连接!)

使用 Deploy war/ear to a container 的tomcat容器热部署项目(无需重启tomcat容器)

参数说明:

WAR/EAR files:要上传到服务器的war包

Context path:上下文路径(服务器上的tomcat的webapps目录)

Container:容器类型,如Jetty,Tomcat

  Manager user name:tomcat管理员控制台用户名

  Manager password:tomcat管理员控制台密码

  Tomcat URL:访问路径 http://192.168.42.128:8081

设置tomcat控制管理员密码,点击Manager App

提示信息

配置tomcat的可操作权限.

在tomcat的安装目录下,修改conf / tomcat-user.xml文件,在<tomcat-users> 节点下面增加如下配置(多个角色用“,”隔开):

<role rolename="manager-gui" />

<role rolename="manager-script" />

<user username="tomcat" password="tomcat" roles="manager-gui, manager-script"/>

vim conf/tomcat-users.xml

保存,后重启tomcat,配置Deploy war/ear to a container

点击构建,输出日志:

Started by user admin
Cleaning the workspace because project is configured to clean the workspace before each build.
Checking out a fresh workspace because there's no workspace at C:\Users\Administrator\.hudson\jobs\crm_job\workspace
Cleaning workspace C:\Users\Administrator\.hudson\jobs\crm_job\workspace
Checking out https://d1osxkijfdv9p4f:8443/svn/repo/crm/trunk revision: 2016-12-8 1:20:50 depth:infinity ignoreExternals: false
A crm
A crm\.classpath
A crm\.project
A crm\src
A crm\src\test
A crm\src\test\java
A crm\src\main
A crm\src\main\java
A crm\src\main\resources
A crm\src\main\webapp
A crm\src\main\webapp\index.jsp
A crm\src\main\webapp\WEB-INF
A crm\src\main\webapp\WEB-INF\web.xml
A crm\pom.xml
A crm\.settings
A crm\.settings\org.eclipse.jdt.core.prefs
A crm\.settings\org.eclipse.m2e.core.prefs
A crm\.settings\org.eclipse.wst.jsdt.ui.superType.name
A crm\.settings\org.eclipse.wst.jsdt.ui.superType.container
A crm\.settings\org.eclipse.wst.common.project.facet.core.xml
A crm\.settings\.jsdtscope
A crm\.settings\org.eclipse.wst.validation.prefs
A crm\.settings\org.eclipse.wst.common.component
At revision 27
no change for https://d1osxkijfdv9p4f:8443/svn/repo/crm/trunk since the previous build
[workspace] $ "D:\Program Files\apache-maven-3.2.5\bin\mvn.bat" -f crm/pom.xml clean package
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building crm Maven Webapp 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ crm ---
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ crm ---
[INFO] Copying 0 resource
[INFO]
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ crm ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ crm ---
[INFO] skip non existing resourceDirectory C:\Users\Administrator\.hudson\jobs\crm_job\workspace\crm\src\test\resources
[INFO]
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ crm ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ crm ---
[INFO] No tests to run.
[INFO]
[INFO] --- maven-war-plugin:2.2:war (default-war) @ crm ---
[INFO] Packaging webapp
[INFO] Assembling webapp [crm] in [C:\Users\Administrator\.hudson\jobs\crm_job\workspace\crm\target\crm]
[INFO] Processing war project
[INFO] Copying webapp resources [C:\Users\Administrator\.hudson\jobs\crm_job\workspace\crm\src\main\webapp]
[INFO] Webapp assembled in [55 msecs]
[INFO] Building war: C:\Users\Administrator\.hudson\jobs\crm_job\workspace\crm\target\crm.war
[INFO] WEB-INF\web.xml already added, skipping
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.972 s
[INFO] Finished at: 2016-12-08T01:20:55+08:00
[INFO] Final Memory: 11M/244M
[INFO] ------------------------------------------------------------------------
Deploying C:\Users\Administrator\.hudson\jobs\crm_job\workspace\crm\target\crm.war to container Tomcat 7.x Remote
Redeploying [C:\Users\Administrator\.hudson\jobs\crm_job\workspace\crm\target\crm.war]
Undeploying [C:\Users\Administrator\.hudson\jobs\crm_job\workspace\crm\target\crm.war]
Deploying [C:\Users\Administrator\.hudson\jobs\crm_job\workspace\crm\target\crm.war]
Finished: SUCCESS

tomcat目录

刷新浏览器

修改index.jsp

使用Hudson重新构建后刷新浏览器

Hudson + SVN + Maven 持续集成实现自动化编译、打包、部署(over SSH 和 Deploy war/ear to a container 两种部署方式)的更多相关文章

  1. Jenkins中deploy插件的deploy war/ear to a container与deploy artifacts to maven reepository区别

    deploy war/ear to a container:发布war包到服务器 deploy artifacts to maven reepository:发布到maven服务器

  2. Hudson+Maven+Svn搭建持续集成环境

    Hudson+Maven+Svn搭建持续集成环境 博客分类: 配置管理 mavenSVNTomcat项目管理配置管理 一.所用开发工具 1.    Hudson: Hudson 是一种革命性的开放源码 ...

  3. [持续集成]Jenkins 自动化部署 Maven 工程

    一.Jenkins 持续部署原理图 基础服务: 1 SVN 服务 SVN是Subversion的简称,是一个开放源代码的版本控制系统.说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的 ...

  4. Docker+Jenkins+Maven+SVN搭建持续集成环境

    Docker+Jenkins+Maven+SVN搭建持续集成环境 环境拓扑图(实验项目使用PHP环境) 发布流程图 环境说明 系统:Centos 7.4 x64 Docker版本:18.09.0 Ma ...

  5. .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统

    .NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言     相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...

  6. .NET持续集成与自动化部署之路第二篇——使用NuGet.Server搭建公司内部的Nuget(包)管理器

    使用NuGet.Server搭建公司内部的Nuget(包)管理器 前言     Nuget是一个.NET平台下的开源的项目,它是Visual Studio的扩展.在使用Visual Studio开发基 ...

  7. NET持续集成与自动化部署

    https://www.cnblogs.com/hunternet/p/9590287.html 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们 ...

  8. .NET 半天搭建Jenkins持续集成与自动化部署系统

    前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...

  9. Jenkins Jenkins结合GIT Maven持续集成环境配置

    Jenkins结合GIT Maven持续集成环境配置   by:授客 QQ:1033553122 安装Git插件 1 安装Git客户端 1 安装JAVA JDK及MAVEN 2 Jenkins JDK ...

随机推荐

  1. python re group()

    python group() 正则表达式中,group()用来提出分组截获的字符串,()用来分组 import re a = "123abc456" print re.search ...

  2. 【Alpha】第一次Daily Scrum Meeting

    一.今日站立式会议照片 二.会议内容 1.调研市场现有礼物挑选软件,分析优势,亮点,劣势 2.确立开发环境和安装调试 三.燃尽图 四.遇到的困难 在准备开发环境和安装调试时遇到系统和开发环境不要兼容, ...

  3. 个人作业3—个人总结(Alpha阶段)

    一.个人总结 在Alpha阶段,我们团队通过合作的方式,完成了之前觉得不大可能会完成的事(至少在我看来是这样的),大家其实之前的写代码能力都不太好,这期间大家都是边学边做,边做边学,最后跌跌撞撞的完成 ...

  4. 201521123104 《Java程序设计》第5周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关多态与接口的知识点 1.2 可选:使用常规方法总结其他上课内容. 1.接口不是类,不能使用new进行实例化; 2.接口可以扩展; 3.接口中可以包含 ...

  5. 社工数据搜索引擎搭建 - Build Social Engineer Evildata Search Engine

    如何设计搭建一个社工库 从初起设计一个社工库,到现在的Beta,前前后后零零整整花了不下一个月的时间,林林总总记录下来,留给需要之人 泄露数据库格式不一,长相奇葩,因需将用户名.密码.邮箱.哈希等信息 ...

  6. 201521123007《Java程序设计》第14周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...

  7. java第十三次作业

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相内关容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  8. PIC单片机状态寄存器中的C(进位/借位位标志)

    查阅PIC单片机芯片手册,关于进位/借位位的说明为: C:进位/借位位. 1 = 结果的最高位发生了进位 0 = 结果的最高位未发生进位 同时有一条标注:借位的极性是相反的. 通过以上说明,可以将C的 ...

  9. SQL基础巩固

    1.一定要记住,SQL 对大小写不敏感! 2.分号是在数据库系统中分隔每条 SQL 语句的标准方法,这样就可以在对服务器的相同请求中执行一条以上的语句. 如果您使用的是 MS Access 和 SQL ...

  10. Oracle-SQL-按月统计自助终端交易量

    SQL实现的目标: 基本情况 现金交易情况 转账情况 转账交易情况(明细) 其它业务情况 交易量汇总 日均交易量 交易金额 绩效情况(万元) 支行名 支行号 所属网点 网点号 管理员帐户 管理员 终端 ...