Jenkins+maven+git的可持续集成实践
2016-07-28 18:07
435 查看
概述
相关资料
Jenkins+maven+git的可持续集成实践Jenkins+Maven+Git搭建持续集成和自动化部署的配置手记
实践操作
说明:JDK、SSHD已经默认安装了,这里就不复述了。安装Tomcat
tomcat的安装很简单。不多讲。这里用的是[tomcat8]( “http://tomcat.apache.org/download-80.cgi“)。安装maven
到maven官网下载maven最新的安装包apache-maven-3.0.4-bin.tar.gz,并解压至/usr/local/目录,或可选地修改maven的使用用户:sudo chown -R user:group apache-maven-3.0.4 或者 chmod 777 apache-maven-4.0.4 -R添加M2_HOME环境变量:在/etc/environment或~/.bashrc文件中添加
export M2_HOME=/usr/local/apache-maven-3.0.4 export PATH=$PATH:$M2_HOME/bin #optional export MAVEN_OPTS="-Xms256m -Xmx512m"
安装git
ubuntu下直接apt-get install git -y即可安装。
安装完后,执行
git --version看看版本信息:
root@36ab2c1af70e:~# git --version git version 1.9.1
安装Jenkins
在Jenkins官网下载最新版本的war包。然后放入到tomcat的webapps目录下:这里使用Jenkins默认的工作空间。
启动tomcat,然后访问:http://localhost:8080/jenkins 即可看到页面。
但是却看到如下的错误信息:
AWT is not properly configured on this server. Perhaps you need to run your container with "-Djava.awt.headless=true"? See also: https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+got+java.awt.headless+problem java.lang.UnsatisfiedLinkError: /mnt/jdk1.8/jre/lib/amd64/libawt_xawt.so: libXrender.so.1: cannot open shared object file: No such file or directory at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1824) at java.lang.Runtime.load0(Runtime.java:809) at java.lang.System.load(System.java:1086) at java.lang.ClassLoader$NativeLibrary.load(Native Method) at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1941) at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1845) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at java.awt.Toolkit$3.run(Toolkit.java:1636) at java.awt.Toolkit$3.run(Toolkit.java:1634) at java.security.AccessController.doPrivileged(Native Method) at java.awt.Toolkit.loadLibraries(Toolkit.java:1633) at java.awt.Toolkit.<clinit>(Toolkit.java:1668) at java.awt.Font.<clinit>(Font.java:246) at hudson.util.ChartUtil.<clinit>(ChartUtil.java:255) at hudson.WebAppMain.contextInitialized(WebAppMain.java:186) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4842) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5303) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1092) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1834) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)
根据上面的提示,发现是少了
libxrender,于是执行命令
sudo apt-get install libxrender-dev
完成后重启tomcat,发现又有新的错误:
java.lang.UnsatisfiedLinkError: /mnt/jdk1.8/jre/lib/amd64/libawt_xawt.so: libXtst.so.6: cannot open shared object file: No such file or directory
于是执行命令:
apt-get install libxtst-dev
继续重启tomcat。
刷新页面,可以看到正常启动了
启动完后,需要输入管理员密码:
去服务器的
/root/.jenkins/secrets/initialAdminPassword查看密码,输入密码然后继续。
然后选择需要安装的plugin,接着等待插件安装完成
这个过程很慢(看个人网络),可能有些插件安装不了(应该是被墙了),但是只要git安装也就行。安装完后,设置管理员账号跟密码,就能开始使用Jenkins了,如图
后来发现Git plugin 并没有安装成功。因为Git plugin 依赖于其他的插件(Credentials Plugin、SSH Credentials Plugin、Git Client Plugin),然后人工去下载了最新版本的依赖插件,最后才把git plugin安装上去。
使用Jenkins
新建任务
点击主界面左上角的“新建”按钮,弹出如下界面配置Git仓库
如图所示输入git地址,如果需要授权登录的话,就添加相应的授权。
配置maven命令
我们希望在git pull完成后,编译代码成jar,然后运行。如图所示
Maven Vesion 要选择正确(可以在配置中修改),不然找不到mvn命令
先执行mvn clean package -Dmaven.skip.test=true命令,进行编译,这个根据实际情况来修改
编译完后,就要执行jar文件。此时我们要判断一下这个jar是否已经执行过了,如果执行中就先kill掉
最后用nohup后台运行我们的jar,同时保存pid到jenkins.pid,方便下次kill掉进程。
这样的话就能构建项目了。
同时可以配置一个定时器去判断git上面的代码有没有更新,如果更新了,就自动构建,真是太方便了。
相关文章推荐
- RPC failed; result=22, HTTP code = 411
- git更新已經刪除的文件
- 关于Jenkins在Linux快速搭建持续集成环境
- maven学习
- 提取Git每次提交后Commit的文件
- GIT迁移服务器
- maven插件maven-war-plugin的使用
- jenkins------结合maven将svn项目自动部署到tomcat下
- jenkins------部署项目到jboss eap下
- maven使用经验集
- 分布式版本管理git入门指南使用资料汇总及文章推荐
- git终极指南:在实际开发中的应用
- 6 个托管 git 仓库的地方
- Git远程操作详解
- 25个 Git 进阶技巧(翻译)
- 详解版本控制利器Git,SVN的异同以及适用范围
- git多账号登录问题解析
- java application maven项目打自定义zip包实例(推荐)
- Ruby实现的删除已经合并的git分支脚本分享