Jenkins管道作业构建

Jenkins管道作业构建,jenkins,sonarqube,jenkins-plugins,jenkins-pipeline,sonarqube-scan,Jenkins,Sonarqube,Jenkins Plugins,Jenkins Pipeline,Sonarqube Scan,我正试图建立一个詹金斯管道工作。我试图将sonarqube扫描仪配置放入Jenkins pipeline作业的Groovy脚本中。 但是当我构建上面的作业时,我得到以下错误- 另外,当我参考与Jenkins管道作业集成的Sonarqube文档时,我没有得到关于设置Sonarqube属性的信息,否则我们必须通过添加一个步骤来设置“执行Sonarqube扫描程序” 有谁能帮助我们了解如何在jenkins管道作业中设置Sonarqube属性,否则我们可以在Maven或Jnekins中的Frees

我正试图建立一个詹金斯管道工作。我试图将sonarqube扫描仪配置放入Jenkins pipeline作业的Groovy脚本中。

但是当我构建上面的作业时,我得到以下错误-

另外,当我参考与Jenkins管道作业集成的Sonarqube文档时,我没有得到关于设置Sonarqube属性的信息,否则我们必须通过添加一个步骤来设置“执行Sonarqube扫描程序”

有谁能帮助我们了解如何在jenkins管道作业中设置Sonarqube属性,否则我们可以在Maven或Jnekins中的Freestyle作业类型中指定这些属性(如上面的快照所示)。 谢谢

现在我已经更改了Jenkins管道作业配置的Groovy脚本-

现在我得到了一个错误-


任何人都可以帮助我解决上述问题。

由于您没有使用Java 1.8运行,
不支持的主版本。次版本发生错误。
您能在所有从机(包括运行Jenkins的主机)上将Java is 1.8的版本翻倍吗?

sonar scanner
需要Java 1.8,您的
Java_HOME
变量必须指向该变量。

在我的例子中,配置文件始终位于应用程序存储库中,然后从jenkins作业中调用$WORKSPACE/sonar-project.properties

文件内容如下(示例):


谢谢你的信息。我会这么做的。但您也可以告诉我如何在jenkins管道作业中设置sonarqube属性。这对我很有用:node{def scannerHome=tool'sonarqube';echo scannerHome;with sonarqubeenv{sh“echo test”}试试这个脚本,确保您在Jenkins->Global tool Configuration->sonarqube scanner中有一个工具,并将其命名为SONARQUBEI。它确实将java更改为java1.8,并且我停止了上述错误。谢谢。但是现在我得到了错误-错误:SonarQube扫描仪执行期间出错错误:您必须为“未知”定义以下强制属性:sonar.projectKey、sonar.projectName、sonar.projectVersion、sonar.sonar.sources我得到了错误,因为我没有设置上述属性。但我们如何在管道作业中设置这些属性?@YuganderKrishanSingh我认为您必须在全局工具配置->声纳扫描中设置这些属性如果我在全局工具配置中设置这些属性,那么这些属性将得到修复。但我有很多不同项目的关键。那么,我将如何使用单独的键。谢谢你的回答。我在manage Jenkins/Configure system中拥有Sonarqube的所有配置。我面临的错误也是由jdk1.7引起的。在我将它更新到JDK1.8之后,错误被解决了。但现在我遇到另一个错误-SonarQube扫描仪执行错误期间出错:必须为“未知”定义以下强制属性:sonar.projectKey、sonar.projectName、sonar.projectVersion、sonar.sources。正如您在回答中提到的,我们可以在sonar-project.properties中使用这些属性,但有没有办法在Groovy脚本中直接指定这些属性。您可以在同一执行步骤中,在“def scannerHome”行之前定义所有属性。属性与配置文件中的属性相同:sonar.projectKey=sonar.projectName=sonar.projectVersion=1.0/#指向源目录的逗号分隔路径(必需)sonar.sources=src sonar.exclusions=src/vendor/***/#Language sonar.Language=php/#sonar.sourceEncoding=UTF-8源文件编码
# Required metadata
sonar.projectKey=<project-key>
sonar.projectName=<project-name>
sonar.projectVersion=<project-version>

# Comma-separated paths to directories with sources (required)
sonar.sources=src
sonar.exclusions=src/vendor/**/*

# Language
sonar.language=php

# Encoding of the source files
sonar.sourceEncoding=UTF-8

sonar.php.coverage.reportPath=src/coverage-clover.xml #change path to location of your test report
sonar.php.tests.reportPath=src/unitreport.xml  #change path to location of your test report
def scannerHome = tool 'azure-tools-sonarqube'  #This is the scanner you added

withSonarQubeEnv('redacted Sonarqube') {  #This is the server you added
  sh "${scannerHome}/bin/sonar-scanner"
}