51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1885|回复: 1

[资料] jenkins搭建遇到的问题

[复制链接]
  • TA的每日心情
    开心
    2019-5-16 15:42
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2019-4-26 16:44:17 | 显示全部楼层 |阅读模式
    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版本来构建打包钱迎迎,也成功了。
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-3-29 14:30 , Processed in 0.068227 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表