51Testing软件测试论坛

标题: jenkins搭建遇到的问题 [打印本页]

作者: Sy_小单    时间: 2019-4-26 16:44
标题: jenkins搭建遇到的问题
1、jenkins登录提示anonymous没有Overall/Read权限(hudson.security.AccessDeniedException2: anonymous没有Overall/Read权限)

原因:jenkins的全局安全配置有问题

解决:

1、访问控制选择jenkins专用用户数据库

2、授权策略选择任何用户可以做任何事或者登录用户可以做任何事

3、重启jenkins(最好等几分钟)

ps:当jenkins卡在提示anonymous没有Overall/Read权限,找到config.xml文件,把<useSecurity>true</useSecurity>改成<useSecurity>false</useSecurity>再重新配置权限

2、jenkins在系统管理提示反向代理设置有误

原因:mac系统使用brew安装jenkins,系统管理的系统设置里的jenkins url默认为localhost:8080,由于plist配置的httpListenAddress为了让ip和其他机器访问改了,所以jenkins的url也要改

解决:jenkins url改成ip+端口号

ps:不要再端口号加/jenkins,加了之后还是会报原错误

3、jenkins在系统管理提示不安全的 Jenkins 允许网络上的任何人以你的身份访问程序。考虑至少启用身份验证来阻止滥用

原因:全局安全配置没有启用安全

解决:

打开 Jenkins 首页,点击左侧的侧边栏-系统管理,然后点击全局安全配置进入到系统安全配置页面:

首先勾选启用安全,然后在访问控制下面:

安全域里的勾选Jenkins 专有登录用户可以做任何事用户数据库,并勾选允许注册,不然没法进行注册

授权策略里的勾选项目矩阵授权策略

ps:授权策略按需求来选择

4、jenkins安装了之后用localhost:8080,使用ip或者局域网其他机器访问不了

原因:使用brew安装jenkins会避免很多其他安装方式产生的用户权限问题,但是会将httpListenAddress默认设置为127.0.0.1,这样虽然可以在本地用localhost:8080访问,但是本机和局域网均无法用ip访问。

解决:

改两个路径下的plist配置,并重启

~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist

/usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist

将上面两个plist中的httpListenAddress后的ip地址,修改为本机IP或者0.0.0.0

5、本地打包失败,显示:Error:Execution failed for task ':app:compileDebugNdk'.

Error:Execution failed for task ':app:compileDebugNdk'.
> NDK not configured.
Download the NDK from http://developer.android.com/tools/sdk/ndk/
Then add ndk.dir=path/to/ndk in “local.properties”
(On Windows, make sure you escape backslashes, e.g.

原因:(我一开始以为sdk是有带着ndk的)

(1)ndk没装

(2)local.properties 没有添加ndk的目录

解决:到官网去下载ndk的压缩包,解压到相应的目录,配置好环境变量,并把ndk的目录添加到loca.properties文件(loca.properties文件是在当前项目的目录下)

6、本地编译打包失败,提示"A problem occurred configuring root project 'xxx(当前项目名称)'"



原因:在app项目的build.gradle中的buildscript下的jcenter()和google()的顺序写反了

解决:google()在前,jcenter()在后

7、Jenkins在使用gradle 命令进行构建打包失败,提示“Task‘gradle’ not found in root project 'android_app'”





原因:

(1)使用的源码不是使用gradle进行构建的

(2)在构建中invoke gradle script中使用的命令开头有gradle

但是这里已经显示命令是没有带grale开头,故原因为第一种

解决:更换gradle构建的源码仓库地址

8、Jenkins打包失败,提示“Could not resolve all artifacts for configuration ':classpath'”



原因:Jenkins打包的版本不对,尝试过以下几种方法:

(1)最开始我以为是gradle缺少lint-gradle-api-26.1.2.jar包,想直接去网上下载lint-gradle-api-26.1.2.jar包,但是发现网上找不到这个jar包,能找到lint-gradle-api-25.1.2.jar,尝试过把包放到gradle的lib目录下,结果失败

(2)在项目下的build.gradle 添加google()存储库,将google()添加到repositories下buildscript和allprojects,但是bui.gradle早已存在google()

(3)后来又找到关于(2)项目的build.gradle的allprojects原本就有 google()和 jcenter(),还是报错的问题的解决方案,工程buildscript和allprojects中添加了 mavenLocal()和 mavenCentral(),但是mavenCentral()已存在,我只好把mavenLocal()上去尝试,结果还是行

(4)把build.gradle里的buildscript的jcenter()和meven()注释掉,但是我发现buildscript里是没有maven{},不过我这按照下图,把maven{}加上去后,重新打包,结果还是不行



(5)最后想了好久,把问题的原因归结到gradle上,这里我就尝试过使用brew安装的gradle(5.0)和压缩包安装的gradle(3.5,构建的源码是用gradle 3.5版本的)结果都是不行,我这里最初使用的git是之前的钱迎迎的,参考之前钱迎迎的打包配置也是用gradle 3.5。后面问开发的同学,建议我用钱金金的打包git地址,所以我又换了钱金金的git地址,用的还是gradle 3.5,还是报同样的错误,不过后来对照了钱金金的打包配置发现gradle版本是4.6的,故我把gradle版本换成4.6的,结果成功打包了。借此,我用gradle 4.6版本来构建打包钱迎迎,也成功了。
作者: Miss_love    时间: 2020-12-30 16:00
支持下




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2