我尝试在jenkins中动态更新sonarqube版本,方法是在https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Gradle添加sonar.projectVersion = $ {project.version}或在此处添加sonar.projectVersion = $ {$ APP_BUILD_NUMBER} APP_BUILD_NUMBER环境变量但不考虑使用它是版本名称。
完整分析属性
# required metadata
sonar.projectKey=myproject
sonar.projectName=myproject
sonar.projectVersion=2.0.2
sonar.sourceEncoding=UTF-8
# path to source directories (required)
sonar.sources=src/main/java
# List of the module identifiers
sonar.modules=app,ui
ui.sonar.projectBaseDir=ui
# Properties can obviously be overriden for
# each module - just prefix them with the module ID
app.sonar.projectName=App
# Uncomment this line to analyse a project which is not a java project.
# The value of the property must be the key of the language.
sonar.language=java
# java version used by source files:
sonar.java.source=1.8
答案 0 :(得分:0)
更详细的问题有助于更好地回答。在这里,我做出了更好的回答。
我假设您尝试更新的动态版本名称是jenkins内部版本号。可以通过jenkins环境变量 $ {BUILD_NUMBER} 访问。您可以直接在" Execute Shell"中使用它。 (即)echo ${BUILD_NUMBER}
将起作用。
您也可以使用其他环境变量。例如: $ {BUILD_TAG} 。你可以找到jenkins环境变量列表http://JENKINS-URL/env-vars.html/
这些环境变量也可用于构建脚本(即ANT,Maven,Gradle等)。只需确保,您已使用正确的方法访问构建脚本中的环境变量。 对于Ant:
<property environment="env"/>
<property name="sonar.projectVersion" value=${env.BUILD_NUMBER}"/>
答案 1 :(得分:0)
@Simon Schrottner
我们在詹金斯(Jenkins)中使用了以下内容(注意:我们使用了Gradle)
sonar.projectKey=$JOB_NAME
sonar.projectName=$JOB_NAME
sonar.projectVersion=$BUILD_NUMBER
sonar.exclusions=vendor/**, storage/**, resources/**
sonar.language=java
sonar.sources=$WORKSPACE
sonar.sourceEncoding=UTF-8
sonar.java.binaries=$WORKSPACE/build/classes/java/main
答案 2 :(得分:0)
就我而言( android项目)。我改用这两种方法
使用android配置属性
>>> from urllib.parse import quote_plus
>>> quote_plus("mysql://root:password@1234@127.0.0.1/database1")
'mysql%3A%2F%2Froot%3Apassword%401234%40127.0.0.1%2Fdatabase1'
使用git标签
此方法使用android {}
dependencies {}
sonarqube {
properties {
// ...
// get the versionCode, buildVariantName, versionName
// or anything you want to configure.
property("sonar.projectVersion", "${project.android.defaultConfig.versionName}")
// ...
}
,它将获得连接到分支的最新标签:
git describe --always
以上$: ./gradlew sonarqbue -DprojectVersion=`git describe --always`
自变量中的打开和关闭 ` (刻度)表示执行命令。在这种情况下,./gradlew
如果我们要更改存储库或CI / CD平台(例如:迁移以使用Gitlab CI ),或者您可能想检查特定CI上的预定义环境变量,则上述方法也更安全。 / CD平台来满足git describe --always
动态值。
受到这个答案here
的启发