2017-04-22 79 views
2

我有一个gradle多模块项目。我在根包中没有src目录,一切都在模块中。是否有可能在jenkins中设置sonar.sources,就像它在gradle中设置的一样?

我在开发中使用gradle sonar插件部署到声纳。

见gradle这个声纳插件configuration

我用詹金斯部署督促声纳。

这是我sonar-project.properties

# Required metadata 
sonar.host.url=http://sonarqube.service.consul 
sonar.projectKey=com.domain.api 
sonar.projectName=com.domain.api 

# Comma-separated paths to directories with sources (required) 
sonar.sources=. 
sonar.inclusions=**/src/main/java/**/*.java 
sonar.exclusions=**/src/main/test/**/*.java 
sonar.test.exclusions=**/src/main/test/**/*.java 

# Language 
sonar.language=java 

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

我的问题是,gradle这个声纳插件设置sonar.sources动态。

我不能用插件声纳对詹金斯做到这一点。

回答

1

JENKINS SonarQube plugin,作为documented here“让您可以在Jenkins全局配置中集中配置SonarQube服务器连接详细信息。”

这意味着它会在环境变量SONAR_HOST_URL注入到你的工作(在一个MVN构建步骤中使用)

没有什么能阻止你编写一个Groovy脚本这将是相同的环境变量SONAR_HOST_URL设置的值动态设置(例如,一个script using the EnvInject plugin)。

+0

好的。 Appart EnvInject不再被维护,并与其他插件一起安装时遇到问题。你如何在你的'sonar-project.properties'中设置你的'sonar.sources'?否则,我怎么能知道我的gradle项目的sonar.sources的价值,所以我可以在jenkins上使用它? – BigDong

+0

@BigDong你有另一种基于ParametersAction的方法:http://stackoverflow.com/a/25796504/6309。这个想法不是设置'sonar-project.properties',而是在作业执行时覆盖它的一些属性。这些属性也可以先加载(通过相同的grrovy脚本):http://stackoverflow.com/a/20872275/6309。这样,您就可以加载Gradle最初使用的一个。 – VonC

相关问题