为了持续集成自动化构建在服务器上采用了jenkins
构建时采用了执行shell的方式【明明有一个maven的选项貌似可以更方便的样子然而并不会用(摊手状呐喊:大神带带我
由于项目采用了maven以及使用svn做版本控制【这两样是不是可以更简单的构建是不是可以不用写shell】
所以归根结底,shell要做的事情很简单
0.svn更新项目
1.用maven编译项目
2.这里可以选择了,将编译出的项目替换或者拿war包处理,我用的war,所以删除webapps下原有的war以及原来解压出的项目文件
3.将编译出的war复制到webapps下
4.重启tomcat
采用shell的时候要注意几点【也许不用shell就不用注意了
jenkins的权限问题和身份问题
比如无法su
jenkins,然后操作,所以脚本里一般先进行一次身份切换,也可以使用sudo来进行操作
首先是svn
update的用户身份问题,之前以root身份进行了svn的检出等操作,账户密码在root身份下记录过就可以免输了,身份变化之后需要重新设置,比如用jenkins就需要再次输入密码和身份,sudo采用root身份也可以免输了。
其次就是sudo的问题,【selinux似乎不允许没有在sudoers文件里的用户进行sudo,这样操作属于违规会被报告,出现此类提示可以将用户加入sudoers文件】,这样的操作会要求输入jenkins的密码,【关于shell的密码等待输入问题头疼了很久很久从未解决过,然而sudo可以从标准输入流读取密码】,采用echo
'