jenkins介绍-安装

介绍

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具

准备

jenkins下载地址

安装

jenkins部署有两种方法

1.执行命令,访问http://localhost:8081,然后输入信息即可。

2.把下载的文件放入tomcat的webapps下,访问地址http://localhost:8081/jenkins

具体

安装

这里采用第一种方式

1.下载jenkins

2.java -jar C:\Users\time\Downloads\jenkins.war –httpPort=8081
或 java -jar C:\Users\time\Downloads\jenkins.war
jenkins执行命令

3.访问地址http://localhost:8081(如果采用第二种请访问第二个地址)

4.显示页面,并让你输入密码,密码在页面提示路径文件里这里url为:C:\Users***.jenkins\secrets\initialAdminPassword,
在initialAdminPassword文件中招待密码,粘贴复制到浏览器页面,回车
jenkins默认进入输入管理员密码

5.输入后会等待启动,然后选择插件形式,这里博主选择左边选项-安装推荐的插件,第一次使用还是选择默认的
jenkins安装插件选择

6.选择后进入插件安装页面,如图,等待完成
jenkins插件安装页面

7.创建管理员账号,这里可以创建也可以不创建,创建则输入账号,密码。不创建则通过admin登录
jenkins创建管理员用户

8.填写或修改实例配置url,默认
jenkins实例配置

6.完成安装
jenkins安装成功

7.进入即可看到如下界面
jenkins管理员登录界面

关闭

关闭jenkins服务

只需要在访问jenkins服务器的网址url地址后加上exit,例如:http://localhost:8081/exit
jenkins关闭

回车后,点击Retry using POST/使用POST重试,即会关闭
jenkins关闭确认

重启

重启jenkins服务(与关闭相似)

只需要在访问jenkins服务器的网址url地址后加上restart,例如:http://localhost:8081/restart

在新出现的界面上点击yes/是,即可

重载

重新加载jenkins服务配置信息(与关闭相似)

只需要在访问jenkins服务器的网址url地址后加上reload,例如:http://localhost:8081/reload

碰到的问题以及解决方法

1.安装后,自动启动失败

信息: Shutting down a Jenkins instance that was still starting up
java.lang.Throwable: reason
    at hudson.WebAppMain.contextDestroyed(WebAppMain.java:388)
    at org.eclipse.jetty.server.handler.ContextHandler.callContextDestroyed(ContextHandler.java:961)
    at org.eclipse.jetty.servlet.ServletContextHandler.callContextDestroyed(ServletContextHandler.java:571)
    at org.eclipse.jetty.server.handler.ContextHandler.stopContext(ContextHandler.java:938)
    at org.eclipse.jetty.servlet.ServletContextHandler.stopContext(ServletContextHandler.java:381)
    at org.eclipse.jetty.webapp.WebAppContext.stopWebapp(WebAppContext.java:1503)
    at org.eclipse.jetty.webapp.WebAppContext.stopContext(WebAppContext.java:1467)
    at org.eclipse.jetty.server.handler.ContextHandler.doStop(ContextHandler.java:990)
    at org.eclipse.jetty.servlet.ServletContextHandler.doStop(ServletContextHandler.java:297)
    at org.eclipse.jetty.webapp.WebAppContext.doStop(WebAppContext.java:569)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:149)
    at org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:170)
    at org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:124)
    at org.eclipse.jetty.server.Server.doStop(Server.java:490)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
    at winstone.Launcher.shutdown(Launcher.java:310)
    at winstone.Launcher.<init>(Launcher.java:197)
    at winstone.Launcher.main(Launcher.java:354)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at Main._main(Main.java:344)
    at Main.main(Main.java:160)

九月 04, 2018 7:50:11 下午 org.eclipse.jetty.server.handler.ContextHandler doStop
信息: Stopped w.@3e0e1046{Jenkins v2.141,/,null,UNAVAILABLE}{C:\Users\T440\.jenkins\war}
Exception in thread "Jenkins initialization thread" java.lang.NoClassDefFoundError: hudson/util/HudsonFailedToLoad
        at hudson.WebAppMain$3.run(WebAppMain.java:247)
Caused by: java.lang.ClassNotFoundException: hudson.util.HudsonFailedToLoad
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at org.eclipse.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:565)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 1 more
九月 04, 2018 7:50:11 下午 winstone.Logger logInternal
信息: Jetty shutdown successfully
java.io.IOException: Failed to start Jetty
    at winstone.Launcher.<init>(Launcher.java:186)
    at winstone.Launcher.main(Launcher.java:354)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at Main._main(Main.java:344)
    at Main.main(Main.java:160)
Caused by: java.net.BindException: Address already in use: bind
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Unknown Source)
    at sun.nio.ch.Net.bind(Unknown Source)
    at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
    at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
    at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:331)
    at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:299)
    at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
    at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.server.Server.doStart(Server.java:398)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at winstone.Launcher.<init>(Launcher.java:184)
    ... 7 more
九月 04, 2018 7:50:11 下午 winstone.Logger logInternal
严重: Container startup failed
java.io.IOException: Failed to start Jetty
    at winstone.Launcher.<init>(Launcher.java:186)
    at winstone.Launcher.main(Launcher.java:354)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at Main._main(Main.java:344)
    at Main.main(Main.java:160)
Caused by: java.net.BindException: Address already in use: bind
    at sun.nio.ch.Net.bind0(Native Method)
    at sun.nio.ch.Net.bind(Unknown Source)
    at sun.nio.ch.Net.bind(Unknown Source)
    at sun.nio.ch.ServerSocketChannelImpl.bind(Unknown Source)
    at sun.nio.ch.ServerSocketAdaptor.bind(Unknown Source)
    at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:331)
    at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:299)
    at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
    at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:235)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at org.eclipse.jetty.server.Server.doStart(Server.java:398)
    at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
    at winstone.Launcher.<init>(Launcher.java:184)
    ... 7 more

怀疑是端口问题,百度了下,确实是端口冲突,之前启动了一个项目,占用了8080端口,jenkins默认8080端口,这个时候可以 在启动war包时候增加端口,命令为

java -jar jenkinsWAR包路径  --httpPort=$HTTP_PORT

exp

java -jar D:\jenkins.war --httpPort=8081    

然后等在启动访问

http://localhost:8081/

就会看到jenkins界面了

2.在安装中创建管理员账号时需要填写邮箱,不填写无法保存,也不报错

参考资料

https://blog.csdn.net/bingoxubin/article/details/78720976

https://blog.csdn.net/bingoxubin/article/details/78720976

关闭重启jenkins