您的位置:首页 > 其它

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上面的代码有没有更新,如果更新了,就自动构建,真是太方便了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  git maven jenkins