Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Jenkinsfile和maven对pullRequest的代码进行声纳分析_Java_Maven_Github_Jenkins_Sonar Runner - Fatal编程技术网

Java 使用Jenkinsfile和maven对pullRequest的代码进行声纳分析

Java 使用Jenkinsfile和maven对pullRequest的代码进行声纳分析,java,maven,github,jenkins,sonar-runner,Java,Maven,Github,Jenkins,Sonar Runner,目前在我的项目中,组织存储库上的每个请求都是由Jenkins自动生成的,如Jenkins文件中指定的那样。 构建结束时,将在send byJenkins中向github发送一条消息,其中包含此项目的构建状态 我想向pull请求的对话发送一个声纳分析,但仅针对已被pull请求更新的文件/代码 悬赏信息: 它需要使用一个Jenkins文件(请在您的回复中添加完整的Jenkins文件) 结果应该只出现在github的pullRequest页面中,用于pullRequest更新的代码 您的mvn so

目前在我的项目中,组织存储库上的每个请求都是由
Jenkins
自动生成的,如Jenkins文件中指定的那样。 构建结束时,将在send by
Jenkins
中向github发送一条消息,其中包含此项目的构建状态

我想向pull请求的对话发送一个
声纳
分析,但仅针对已被pull请求更新的文件/代码

悬赏信息:

  • 它需要使用一个Jenkins文件(请在您的回复中添加完整的Jenkins文件)
  • 结果应该只出现在github的pullRequest页面中,用于pullRequest更新的代码

您的mvn sonar命令似乎缺少GitHub oauth令牌参数,如中所述。这将逐步介绍如何生成此令牌。生成后,可以将其添加到命令中(即-Dsonar.github.oauth=您的令牌

由于您已经10个月没有收到答复,我将尽我所能提供帮助,这是我的GitLab工作示例,但您应该能够更改这一点,因为插件类似():

这包括各种位,但涵盖了您尝试执行的操作,sonar分析分为两部分进行预览(提交时的注释,打开时这些注释将传输到合并请求),然后是正常的分析后记

在项目pom中,我还定义了:

<sonar.gitlab.project_id>${gitlab.project_id}</sonar.gitlab.project_id>
<sonar.gitlab.unique_issue_per_inline>true</sonar.gitlab.unique_issue_per_inline>
<sonar.gitlab.user_token>GITLAB_USER_TOKEN</sonar.gitlab.user_token>
<sonar.gitlab.url>${git.hostname.url}</sonar.gitlab.url>

谢谢,但我只是没有将身份验证选项添加到示例脚本中。我搜索了一个完整的工作文件来响应我的需要。所以你的脚本中有身份验证,你只是没有把它放在你的问题中?脚本是否将任何内容推送到GitHub?这可能适用于SonarQube 6.7和PR插件。我相信SonarQube 7.x的工作原理稍有不同(而且是更好的文档记录+付费功能)
<sonar.gitlab.project_id>${gitlab.project_id}</sonar.gitlab.project_id>
<sonar.gitlab.unique_issue_per_inline>true</sonar.gitlab.unique_issue_per_inline>
<sonar.gitlab.user_token>GITLAB_USER_TOKEN</sonar.gitlab.user_token>
<sonar.gitlab.url>${git.hostname.url}</sonar.gitlab.url>
-Dsonar.analysis.mode=preview \
-Dsonar.github.pullRequest=$PULL_REQUEST_ID \
-Dsonar.github.repository=myOrganisation/myProject \
-Dsonar.github.oauth=$GITHUB_ACCESS_TOKEN \
-Dsonar.host.url=https://server/sonarqube \
-Dsonar.login=$SONARQUBE_ACCESS_TOKEN