由于项目的需要,我们要实现持续集成Jenkins(Hudson)对Web项目的远程部署。众所周知Maven的Cargo插件可以实现这个功能,但是有的Web服务器Cargo插件是不支持的,比如Resin等,而我们所用的服务器正是Resin。所以如果要坚持使用Cargo插件的话,我们只好换服务器,但这样的影响是很大的,因此只有另辟蹊径。
对于构建的工作可以由持续集成完成,现在要解决的问题是把构建后的war包传到远程服务器上,并执行相关的命令。
在我们对项目进行设置的时候,Build选项中有“Send files or execute commands over SSH”这个选项,如下图,所以可以利用这个将构建后的war包传到远程服务器上,并通过SSH调用远程的脚本进行构建。
要使用SSH功能首先需要配置SSH服务器,通过 系统管理-> 系统配置,进入配置页面,配置选项在页面的底部。
如果SSH是通过Key来进行验证的这里需要输入相关服务器的Key,要是通过用户名密码进行验证的话,SSH Key的输入栏可以全部置空。
我是通过用户名和密码进行验证的,因此SSH Server要配置服务器的信息还有用户名和密码。
配置好SSH服务器后,回到项目的配置页面,在Build选项中首先添加Maven的构建选项
然后继续添加Build选项Send files or execute commands over SSH,上传文件,并通过SSH执行命令。
配置好SSH服务器后,服务器就会出现在SSH Server Name的列表中,Transfer Set Source Files这个路径默认是在项目的workspace中,因为构建好的war包在target目录中,所以这里指向了target/shop.war。Remove prefix可以把target/shop.war的target/去掉,这样上传到服务器上就是shop.war,否则它会创建target目录。上传文件到远程服务器的路径为指定用户的home目录,我配置的用户是root,所以会传到/root目录下。Exec command路径为SSH服务器上的脚本,也就是将war包上传到服务器上之后所执行的脚本文件的位置。
war包传到服务器上了,而且也可以执行shell脚本了,接下来的事情就不言而喻了,我们想干嘛就干嘛吧,写在shell中就OK了。
分享到:
相关推荐
可以配置SSH插件执行远程命令,或者使用Jenkinsfile实现Declarative Pipeline来定义部署流程。 7. **监控与优化**:Hudson提供了丰富的监控功能,可以查看构建历史、错误报告,甚至对性能进行分析。根据实际情况...
Hudson(后更名为Jenkins)是一款开源的持续集成工具,主要用于自动化构建、测试和部署软件项目。本手册将详细介绍如何搭建和使用Hudson来创建敏捷开发环境。 #### 第2章 基础篇 ##### 2.1 Hudson 安装 ###### ...
搭建Hudson平台主要包括设置工作目录、配置Jenkins(Hudson的后续项目)环境变量、安装必要的插件以及创建新的构建项目。工作目录用于存储构建结果、日志和其他相关数据。环境变量确保Hudson能正确找到编译器和其他...
以Maven项目为例,创建此类任务时,Jenkins会自动识别项目的Maven结构,并提供一系列预定义的构建步骤,如执行Maven命令、部署到远程仓库等。 #### 执行构建 完成任务配置后,可以通过Jenkins的Web界面启动构建...
Jenkins 是一款开源、免费的持续集成(Continuous Integration, CI)服务器,原名为 Hudson,后因社区原因更名为 Jenkins。它支持多种平台,并且能够以 Master/Slave 架构运行,实现分布式构建任务。Jenkins 的主要...
在“jenkins系统管理—>运行命令行”中输入`System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")`,但此设置会在Jenkins重启后失效。 - **永久解决方案**:修改Jenkins的启动参数,加入`-Dhudson....
通过上述步骤,我们可以成功地在Jenkins中整合Slaver节点,实现分布式构建和自动化部署等功能。这不仅提高了构建速度,还优化了资源配置,使得软件开发过程更加高效稳定。需要注意的是,在实际操作过程中还需根据...
1. **Hudson**(现在被称为Jenkins):Hudson是一个开源的持续集成服务器,用于自动化各种任务,如构建、测试和部署软件。它定期检查源代码仓库的变更,并启动构建过程,确保每次代码更新后都能快速发现潜在问题。 ...
9. **部署和运行**:通过Eclipse,可以直接在本地或远程服务器上部署Web应用,理解部署配置文件(如web.xml)的编写和应用发布流程。 10. **持续集成与自动化构建**:Eclipse可以与Hudson、Jenkins等CI/CD工具配合...
14. **打包和部署**:通过`<jar>`任务打包Java应用,使用`<war>`任务打包Web应用,并结合`<ftp>`或`<scp>`任务实现远程部署。 15. **持续集成**:将Ant构建文件与持续集成工具(如Jenkins、Hudson等)结合,实现...
- **定义**: Jenkins (原名 Hudson) 是一个开源的持续集成工具,能够监控重复的工作,比如构建、测试软件项目。 - **特点**: - 自动化构建 - 多平台支持 - 插件扩展性强 - 易于集成多种开发工具 **2. Hudson的...
- **Hudson/Jenkins**: 设置Eclipse与Hudson或Jenkins的集成,实现自动化构建和测试。 通过这个教程,无论是初学者还是有经验的开发者,都能找到适合自己的学习路径,提升Eclipse的使用技能,从而在软件开发中更加...
6. **集成Hudson进行持续集成**:Maven与持续集成工具Hudson(或Jenkins)结合,可以实现自动构建、测试和部署,提升团队协作效率。学习如何配置Hudson与Maven的集成,设置触发条件,监控构建状态,有助于快速发现和...
11. **持续集成**:通过插件与持续集成工具(如Jenkins、Hudson)集成,实现自动化构建和测试。 12. **团队协作**:支持协同开发,如通过Git或SVN进行代码审查和版本控制。 压缩包中的“eclipse”文件是Eclipse ...
通过Maven,可以实现项目的构建、依赖管理、文档生成等一系列任务。 **1.2 为什么需要Maven** - **简化构建流程**:Maven提供了一套标准化的构建流程,使得开发者无需手动执行复杂的构建步骤。 - **依赖管理**:...
通过运行配置,你可以调试或运行项目,支持本地应用、Web应用和远程服务器部署。 5. **调试**:Eclipse的调试器是其一大亮点,支持断点、单步执行、变量查看、调用堆栈分析等功能。这对于查找和修复程序错误非常有...
- **持续集成与Hudson**:Maven与持续集成服务器(如Jenkins,原名Hudson)结合,可以实现代码变更自动触发构建和测试,提高代码质量。 - **Web项目与自动化部署**:对于Web项目,Maven提供了特定的插件,如war...
通过Maven,开发者可以摆脱繁琐的手动构建过程,实现项目的自动化构建。 **1.2 为什么需要Maven** - **规范构建流程:** Maven提供了一套标准化的构建流程,使得项目构建更加规范和统一。 - **依赖管理:** Maven...