jenkins学习笔记---问题总结

来源:互联网 发布:网络直播是如何赚钱的 编辑:程序博客网 时间:2024/06/05 06:37

jenkins的学习告一段落,这里总结一下学习过程中遇到的问题。

一、jenkins.exe运行不了

刚开始搭建jenkins环境时,我是在官网上下载了一个jenkins安装文件jenkins.msi,直接安装了。但是这样就遇到了很多问题,一开始是关闭不了jenkins服务,后来就是启动不了,也就是运行jenkins.exe报错。


网上也没找到可用的解决方案。有人说是jenkins自身的问题。

那么问题怎么解决呢?

按照传统的安装方法去安装,可以减少很多风险。

即下载jinkens.war包,安装tomcat,在把jinkens.war放在tomcat的webapps文件中,然后重启tomcat既可以在http://localhost:8080/jenkins/  中打开jenkins了。


二、插件按装不了

在jenkins初始化的时候,它会默认安装一些常用的插件,同时还可以在”插件管理“中去安装你需要的插件,


在"过滤"中输入你想要的插件,很容易就可以找到。

但是有时候因为各种原因,通过”过滤“形式找不到插件(一般是网络问题,或者官网的问题),这个时候可以通过本地上传的形式去安装插件(插件可以是从别的地方下载下来的,或者是其他的jenkins环境中的)。

在【高级】页面中找到“上传插件”部分,选择【浏览】,找到本地.jpi文件点击【上传】即可。


记得上传完成所有需要的插件后要重启Tomcat才会生效!


三、忘记密码

在安装完jinkens后,系统会提示设置账号密码,但是有时会出现忘记密码的情况(请原谅我,刚设置完密码我就忘记了)。


网上找到的方法

在jenkins的配置文件里,目录:/var/lib/jenkins/config.xml。需要删除以下内容:

复制代码
<useSecurity>true</useSecurity><authorizationStategy class="hudson.sucrity.FullControlOnceLoggedInAuthorizationStrategy">    ......</authorizationStategy><securityRealm class="hudson.security.HudsonPrivateSecurityRealm">   <disableSignup>false</disableSignup>    .. </securityRealm>
复制代码

重启之后会发现 Jenkins 已经无需登录了。然后,直接找到“系统管理”的“管理用户”菜单,把管理员的密码改回来!然后,用之前备份的 config.xml.bak 文件覆盖 config.xml 配置文件。再次重启 Jenkins,终于发现管理员又可以正常登录了。


另一种方法,思路是改变本地存储的密码,

Jenkins专有用户的数据存放在JENKINS_HOME/users目录。

 打开忘记密码的用户文件夹,里面就一个文件config.xml。嗯,就是它了。打开config.xml,里面有一堆的东西,找找。。。找到了<passwordHash>节点,如图:

把<passwordHash>节点的内容(图中黑色的那一串)换成#jbcrypt:$2a$10$DdaWzN64JgUtLdvxWIflcuQu2fgrrMSAMabF5TSrGK5nXitqK9ZMS

(注意前后有木有空格)

保存,重启Jenkins程序。

然后输入用户名,密码111111

然后就进去了


现在我没有设置,因为我出现过两次重启jenkins后,都出现了账号密码不对的问题,然而账号密码并没有错,我怀疑是重启后有的数据没有保存。有知道原因的同学可以指教一下。


四、项目配置

创建了一个自由风格的软件项目,就该设置了相关的参数配置。(注意:这里我只介绍我遇到过得问题,不是详细介绍配置步骤

1)配置工作空间。

因为jenkins默认的工作空间在c盘中,目录挺深的,为了方便,可以自定义项目的工作空间。

进入项目-->配置,点开”高级项目选项“ ,在勾选”使用自定义的工作空间“就可是设置自定义空间了,即冲git或者其他代码管理工具中拷贝下的代码会保存到这个目录中,如果是本地的项目,直接把项目复制到这个目录下。(我当初不知道怎么测试构建本地代码,就是因为我不知道把要测试的代码放在哪里)



2)设置主目录地址

上面说了,默认的主目录在c盘,而且挺深的,我们可以通过设置环境变量的形式改变主目录位置。

网上的方法挺多的,我使用的方法是在启动Web容器之前设置JENKINS_HOME环境变量E:\jenkins. (因为我反复安装了jenkins,所以相当于我先设置了JENKINS_HOME,再安装了jenkins,如果是先安装了,在重启tomcat,也是可以的,只是c盘中的目录还是存在



3)设置git

我们项目代码管理是使用的git,这需要先安装git插件才可以。

然后注意要添加git对应的账号密码。

或者把账号密码加点git路径中:http://账号:密码@路径

这里要注意的是git的路径,要保证有权限去访问该路径。

实际使用中,我出现过这样一个问题:我们git作了账号权限管理,我第一次进入git时,使用的是别人的账号,这样我可以正常克隆别人的仓库。后来我自己在网上仓储中创建了自己了的仓库,我用对应的路径去克隆我的仓库,但是报错说我没有权限。分析是我本地存储的是别人的账号密码,只能访问对应账号的网上仓库,而不能访问我的仓库。(因为通过浏览器是可以正常访问的)

想通过清除git数据的形式清除本地保存的账号,没有成功(有知道怎么清除的同学可以联系我,不胜感激)。

后来使用的就是通过http://账号:密码@路径这种形式才成功克隆代码的。


4)构建

刚开始学习jenkins时,这个是最迷茫的,根本不知道要做什么,该怎么做。(网上有的文章不问青红皂白就说要使用shell脚本,让我丢人丢大了)

问了会的同事才知道,没有那么难。

我们常用的就两种


第一种:execute Windows batch command ,如果jenkins安装在windows环境中,选择这个,平时构建代码是在cmd中怎么写,就一行一行的写下去。(忽然开朗的感觉啊,根本不需要shell脚本什么的,当然如果情况很复杂,还是需要去用脚本构建的

第二种 execute shell ,如果是在linux环境,需要选这个,不然会报错。


一定要搞清楚jenkins的安装环境。

我吃亏吃大了。我的jenkins是windows环境,公司的是linux环境,我的安卓sdk是windows的,不小心上传到了公司的环境,排错排了一天,才知道公司的环境和我的不一样。重写构建代码,重新配环境变量,花了很多时间。最后还是让公司在windows环境下搭建了一套jenkins才最终解决问题。但是前后也花了两天的时间(沟通成本很高啊)。绝对很冤枉。

因为环境不同遇到的问题有:

①文件目录"\" 与"/"

②获取环境变量路径”${ANT_HOME}“ 与 ”%ANT_HOME%“

③ 遇到 ”${ANDROID_HOME}\tools\android“找不到对应的文件目录时, 可以考虑一下,是否是你的android版本环境不同,(如不同,即使android.bat 文件确实存在,也会报错说找不到文件)

④当你一直出现'ant' 不是内部或外部命令,也不是可运行的程序“,但是你确定一切都ok时,尝试 重启服务(两个小时的血泪)

⑤关于命令执行中断的问题。

 例如,我在执行 android 构建命令 “android update lib-project -p ./ ”时,发现这个操作之后的命令都不执行了。(个人经验是执行耗时操作之后的命令都不是执行),

我的解决方法是创建多个构建步骤,耗时的操作单独成为一个步骤,这样jenkins会依次执行这些构建步骤。

ps:有大牛指出,操作中断的原因是:jenkins在执行shell命令和cmd命令是当执行过程中遇到返回非0,就退出当前子任务。 可能执行出错了。


这次学习jenkins我感觉最深的是:学习完全陌生的东西时,千万要多问会的人,多沟通,不要盲目百度(很有可能让你走上弯路),更不要埋头自己尝试。

在和别人配合的时候,你要知道,你认为是常识的东西别人可能根本不知道(我是做安卓的,他是测试大牛),要把自己的意思表达清楚没有想象的那么简单。

最最重要的是不要钻牛角尖,不要自己默默的纠结,这个时候时间过得飞快的。



0 0