在指定maven目标触发SonarQube分析之后,为什么Jenkins为maven项目工作会引发错误

时间:2018-01-29 11:31:23

标签: maven jenkins sonarqube

我正在尝试运行一个Jenkins工作,该工作应该分析一个用maven构建的java项目,使用sonarqube扫描器为maven进行gitlab源代码管理...当我实现这项工作的目标时,确切的事情就是使用SonarQube服务器创建令牌教程期间生成的内容,如下所示:

mvn sonar:sonar \
  -Dsonar.host.url=http://***** \
  -Dsonar.login=****

它引发了我这种错误:

[ERROR] Unknown lifecycle phase "mvn". You must specify a valid lifecycle phase or a goal in the format <plugin-prefix>:<goal> or <plugin-group-id>:<plugin-artifact-id>[:<plugin-version>]:<goal>. Available lifecycle phases are: validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy, pre-clean, clean, post-clean, pre-site, site, post-site, site-deploy. -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/LifecyclePhaseNotFoundException

我不知道jenkins工作中我的目标缺少什么,或者我应该添加什么,谢谢。

我的maven项目配置截图:

screen of build

2 个答案:

答案 0 :(得分:0)

所以我最终想出来了,总结一下。

您需要让给定的项目成为Jenkins的Maven项目。

当然,您需要在SonarQube服务器和Jenkins中正确配置和集成所有内容,但现在这就是这个问题。

然后,您只在构建步骤中添加环境变量,例如

$SONAR_MAVEN_GOAL -Dsonar.host.url=$SONAR_HOST_URL

如给定的documentation

所述

最重要的是在詹金斯有一个maven项目。之前我尝试过这个变种而且它没有用,因为它不是jenkins中的maven项目而是自由式项目。

build config的示例截图:

CorrectBuildConfig

答案 1 :(得分:0)

在Jenkins中你不需要在目标执行中提供mvn。

通过删除顶级maven任务中的mvn来尝试sonar:sonar \ -Dsonar.host.url=http://***** \ -Dsonar.login=****