pom.xml(Maven 多模块项目)中的 <sonar.exclusions> 在本地工作,但不在公司服务器上
Posted
技术标签:
【中文标题】pom.xml(Maven 多模块项目)中的 <sonar.exclusions> 在本地工作,但不在公司服务器上【英文标题】:<sonar.exclusions> in pom.xml (Maven multi-module project) works locally but not on company server 【发布时间】:2014-10-01 08:19:39 【问题描述】:我在 pom.xml 中使用<sonar.exclusions>
来排除单元测试代码覆盖的某些包。我已经在本地设置了 Sonar,并且排除项反映在报告中。但是,公司服务器上不支持相同的排除项。
我正在使用<sonar.skippedModules>
,它可以按预期工作,并且在两种环境中都可以完美地跳过所需的模块。
本地声纳版本为4.3.1 公司声纳版本为4.1.2
我如何在其中一个模块中编写<sonar.skippedModules>
的示例:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.mainClass>.....</project.mainClass>
<sonar.exclusions>
/src/main/java/../../../../../Package1/*,
/src/main/java/../../../../../Package2/*,
/src/main/java/../../../../../JavaClass1.java
</sonar.exclusions>
<sonar.language>java</sonar.language>
</properties>
您能否帮助我理解为什么<sonar.exclusions>
仅在本地获得荣誉,而在我构建工作(在 Jenkins 上设置)以在公司服务器上生成声纳报告时却没有?版本不同重要吗?
逗号后面没有换行符来分隔包名会有所不同吗?
【问题讨论】:
你为什么使用'../..'?是否要排除所有包中的 Package1、Package2 和 JavaClass1 类中的所有文件? 【参考方案1】:试试这个,我遇到了同样的问题,它对我有用
不要以“/src/main/java/
”开头
而是以“com/companyname/projectname/
”开头
我个人更喜欢“**com/companyname/projectname/../**
”
【讨论】:
看起来sonar.exclusions
不排除像**/enums/**,**/entity/**,**/constant/**
这样的多个路径【参考方案2】:
我可能弄错了,但您应该删除 sonar.exclusions
路径开头的 /
字符,以便相对于项目的根目录计算它们。
【讨论】:
看起来sonar.exclusions
不排除像**/enums/**,**/entity/**,**/constant/**
这样的多个路径以上是关于pom.xml(Maven 多模块项目)中的 <sonar.exclusions> 在本地工作,但不在公司服务器上的主要内容,如果未能解决你的问题,请参考以下文章
pom.xml(Maven 多模块项目)中的 <sonar.exclusions> 在本地工作,但不在公司服务器上