我正在使用以下版本进行声纳扫描:
我的蚂蚁项目包含100多个子模块;大约一半有外部库,一半没有
在我的ant构建文件中,设置了以下声纳属性:
sonar.projectKey = com.foo:bar
sonar.projectName = foobar
sonar.projectVersion = ${build.version.major}.${build.version.minor}.${build.version.subminor}
sonar.sourceEncoding=UTF-8
sonar.language = java
sonar.sources = src
sonar.java.binaries = build/classes
sonar.java.libraries = build/dependency/*.jar
上面的初始问题是,对于没有外部库的模块,它会失败,因为编译后没有jar / build / dependency。
我应该可以将libraries属性更改为
sonar.java.libraries = build/dependency/*
但这对我上面列出的应用版本的组合不起作用。仅使用“*”会导致类找不到错误,所以我甚至认为它没有正确地抓取依赖jar文件。
如果我使用的版本组合不正确,或者是否已退化,有人会建议吗?
我目前的解决方法:
将“* .jar”保留为默认项目属性,并将单个模块的libraries属性添加到空文件夹中,以用于那些没有依赖jar的文件夹。 e.g。
module1.sonar.projectName=module1
module1.sonar.projectBaseDir=modules/module1
module1.sonar.java.libraries=build/dependency
module2.sonar.projectName=module2
module2.sonar.projectBaseDir=modules/module2
module2.sonar.java.libraries=build/dependency
... x 50 more of these
有更优雅的解决方案吗?
感谢, 斯科特
答案 0 :(得分:1)
sonar.java.libraries
属性由SonarQube Java插件处理。请提供其版本,如果不是最新的更新尝试。
答案 1 :(得分:0)
你走在正确的轨道上。 Java多模块项目的分析对于Maven用户来说很容易。 :-(