* Git上下载的项目一般分3类,父工程,主工程,模块工程。 * 不同的工程在hudson工作区下的目录分级也不同。 * 父工程中的内容(一个pom.xml文件)放在hudson工作区的根下 * 主工程,模块工程中的内容都放在hudson工作区下以项目命名的文件夹中
配置项目 选中Git URL of repository:ssh://xxx@192.168.41.191:29418/father
配置项目 选中Git URL of repository:ssh://xxx@192.168.41.191:29418/main Advanced Local subdirectory for repo (optional):main
配置项目 选中Git URL of repository:ssh://xxx@192.168.41.191:29418/moudle1 Advanced Local subdirectory for repo (optional):moudle1
git下载完毕后的目录结构为
hudson_workspace$ ls
pom.xml main moudle1
Build Triggers 勾选“Build periodically” Schedule:0 0 * * *(每天凌晨执行)
Add build step Maven3:Bundled Goals:clean package(只打包)
为tomcat配置一个管理员(稍后发布时用到) vim tomcat-users.xml 添加 <user username="admin" password="admin" roles="manager,tomcat,admin,manager-script"/>
勾选“Deploy war/ear to a container” WAR/EAR files:主工程名/target/*.war Container:Tomcat 7.x Manager user name:admin Manager password:admin Tomcat URL:http://192.168.41.191:8000/(发布到tomcat根目录下)
勾选“Editable Email Notification” Global Recipient List:收件人列表(逗号分隔) Advanced Add a Triger Failure(失败时通知) Success(成功时通知) ……
用插件发布到tomcat有时会出错,还是用ssh命令比较稳定。
安装插件:Publish over SSH Plugin(安装后重启Hudson)
将本机的ssh公钥复制到远程主机上的authorized_keys文件中
系统管理 系统设置 Publish over SSH Path to key:/root/.ssh/id_rsa SSH Servers name:名称 hostname:xxx.xxx.xxx.xxx username:root Remote Directory:/home/wepu/hudson_workspace (服务器上存文件的基路径) Test Configuration(点击测试,测试是否连通)
对每个Job的设置 (勾选)Send build artifacts over SSH Name:上一步设置的名称 Source files:WpAuthService/target/*.war Remove prefix:WpAuthService/target(复制到服务器上时不要这个前缀,只复制*.war) Remote directory:wars/(所有的文件放到服务器上基路径下 的wars 目录下) Exec command:输入要执行的命令,这些命令在文件传输结束之后才被执行