【发布时间】:2014-05-23 17:54:11
【问题描述】:
我有很多(比如说 10 个(A、B、C...))基于 maven 的 eclipse 插件。
我有一个包含所有其他插件项目的主 pom 文件。
现在通过以sonar:sonar 为目标构建主文件,它将构建所有插件。
所以我的问题:有什么办法可以排除一些插件,比如 A 和 C.?
【问题讨论】:
标签: java eclipse maven eclipse-plugin sonarqube
我有很多(比如说 10 个(A、B、C...))基于 maven 的 eclipse 插件。
我有一个包含所有其他插件项目的主 pom 文件。
现在通过以sonar:sonar 为目标构建主文件,它将构建所有插件。
所以我的问题:有什么办法可以排除一些插件,比如 A 和 C.?
【问题讨论】:
标签: java eclipse maven eclipse-plugin sonarqube
我对官方记录的sonar.skip 不满意:当我在子模块 POM 中设置它时,我看到了
[INFO] Delaying SonarQube Scanner to the end of multi-module project
在应该包含的模块之后,然后
[INFO] sonar.skip = true: Skipping analysis
在反应堆构建结束时,没有分析/上传。
相反,我在根 POM 中将 sonar.exclusions 定义为与将在要跳过的子模块中使用的源文件(按包路径)匹配的 pattern。这似乎奏效了。
顺便说一句,在根 POM 中设置 sonar.projectKey 不起作用;声纳抱怨
Project '…' can't have 2 modules with the following key: …
我通过将其移至 .mvn/maven.config 来解决这个问题:
-Dsonar.projectKey=…
【讨论】:
注意:此属性自 4.3 版起已弃用,不应再使用。
从documentation 开始,有一个使用sonar.skippedModules 跳过模块的选项
您也可以从声纳管理页面执行此操作,如跳过模块部分 here 中所述。
【讨论】:
有几种方法,其中一种是在您要跳过的项目/模块的pom.xml 中添加sonar.skip 属性。
这从 SonarQube 分析中排除了一个项目:
<properties>
<sonar.skip>true</sonar.skip>
</properties>
这也适用于 Jenkins 并将 Sonar 作为构建后操作运行。
【讨论】: