Jenkins部署Maven项目
这是关于我使用Jenkins部署Maven项目的经验之谈,包括了部署流程、Maven多模块的一些试验,以及使用Publish Over SSH
的问题。
简述我这里使用Jenkins部署的流程。
- 从SVN将项目Checkout下来。
- 使用Maven打包项目,生产jar包
- 将部署的shell脚本传输到目标服务器。
- 将第2步中的jar包传输到目标服务器并使用第3步中的脚本启动。
首先,新建一个任务。
这里,我选择自由风格的软件项目。虽然我的项目是多模块的,但是,我的这些项目并没有直接的关联。父pom.xml
只是帮助一些依赖包的管理,它们都是独立部署的,有各自的shell脚本。但是这有一个前提条件,就是父pom.xml
已经再本地或远程仓库。
Jenkins会使用任务名称,在/home/<用户>/.jenkins/workspace
下生成文件夹,svn检出的代码会放在这个文件夹下。
源码管理,填写源码的svn地址和用户凭证(需要Subversion插件)
使用Maven构建
|
|
构建后操作,将项目根目录的shell脚本和jar包传到目标服务器(需要Publish Over SSH插件)
这里有两个Transfer Set
,一个传shell脚本,并修改脚本的权限。另一个传jar包,并使用shell脚本启动jar包。
注意
|
|
这里,如果不加#! /bin/bash
, 添加这个Exec command后会出现保存不了的问题。但是去掉.sh
却可以保存。
而且,如果#! /bin/bash
中没有空格也会保存不上。
附一个shell示例。
|
|
注意
shell脚本换行符得是\n
,这个可以在编辑的时候使用IDEA,然后在右下角修改。