SonarQube jenkins 要求输入登录名和密码
Posted
技术标签:
【中文标题】SonarQube jenkins 要求输入登录名和密码【英文标题】:SonarQube jenkins asks for login and password 【发布时间】:2018-11-11 18:40:55 【问题描述】:我正在尝试通过 jenkins 管道分析我的 maven 项目。
我已经在 Jenkins 的全局设置中使用授权令牌和服务器 URL 配置了我的 SonarQube 服务器实例。
以下是我的 jenkinsfile 中的 groovy 脚本:
stage('SonarQube analysis')
tools
jdk "jdk-8u152"
steps
withSonarQubeEnv('My Sonar')
sh 'mvn org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar -Dsonar.login=XXXXXXXXX'
当我使用 jenkins 构建项目时,出现以下错误:
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar (default-cli) on project MyProject: Not authorized. Please check the properties sonar.login and sonar.password.
我认为这足以分析项目。不太确定我错过了什么!
【问题讨论】:
在 SonarQube 服务器项目上,您是否已授予您在 Jenkins 服务器中配置其访问令牌的特定用户的访问权限?此外,如果令牌在您的“我的声纳”声纳设置中的 Jenkins 中全局配置,那么您不需要在管道脚本中再次传递它。 【参考方案1】:好的,我在 SonarQube 7.1 上,我就是这样做的:
-
在 SonarQube 服务器上创建一个新用户。浏览到管理 -> 安全 -> 用户 -> 创建用户。添加登录名和名称并添加密码。
-
现在使用用户名和密码以新创建的用户身份登录。单击右上角,然后单击“我的帐户”-> 安全选项卡。输入令牌名称(例如“Jenkins-Token”)并单击生成令牌。保存此令牌。
-
浏览到您的 SonarQube 项目 -> 管理 -> 权限。
我假设您的项目是私有的。搜索您添加的上述用户并添加权限(请授予执行分析权限)。
转到您的 Jenkins 实例。单击管理 Jenkins -> 配置系统。向下滚动到您的 SonarQube 服务器部分,添加新服务器或编辑现有服务器以将生成的令牌添加到“服务器身份验证令牌”字段。
在管道脚本中调用您在上一步中添加的特定 sonarqube 服务器实例,并在命令行中传递正确的参数。我没有在命令行上传递身份验证令牌,因为它已经在 sonarqube 服务器详细信息中配置
【讨论】:
感谢您的回复和详尽的回答。这正是我所做的(除了在脚本中明确和故意添加令牌)。甚至我都希望这个设置能够工作。这让我感到困惑! 你能把 Jenkins 控制台的输出复制到这里吗? 我已将其粘贴到我的问题中。更令人困惑的是,我使用相同的 jenkins 实例分析了一个 gradle 项目。 好的!所以我发现了这个问题。它非常适合我的项目。我有一个父 pom,它有一些过时的声纳属性。他们覆盖了我的 Jenkins 全局配置,因此没有使用在 Jenkins 的 SonarQube 服务器配置中设置的令牌。愚蠢的东西,这让我很困扰。经验教训 - pom.xml 中的属性覆盖 Jenkings 全局配置参数(在我的情况下,声纳身份验证令牌被 pom.xml 中的 sonar.login 和密码属性覆盖) 您好 Isaiah4110 您的声纳插件版本是多少?因为我在 2.9 并且没有选项服务器身份验证令牌以上是关于SonarQube jenkins 要求输入登录名和密码的主要内容,如果未能解决你的问题,请参考以下文章
自动化代码审查平台: 基于Docker Compose整合Jenkins + SonarQube
通过 jenkins 运行 SonarQube 分析,为 Spark Scala 代码抛出 *** 错误