Maven can';不能索引两次-testSourceDirectory和sourceDirectory是相同的
我已经将性能测试创建为主模块的maven子模块。所有测试类都是在src/main/java下编写的,而不是在src/test/java下编写的 我能够将项目打包为jar并运行它来测试项目的性能 我想执行Maven can';不能索引两次-testSourceDirectory和sourceDirectory是相同的,maven,jenkins,sonarqube,Maven,Jenkins,Sonarqube,我已经将性能测试创建为主模块的maven子模块。所有测试类都是在src/main/java下编写的,而不是在src/test/java下编写的 我能够将项目打包为jar并运行它来测试项目的性能 我想执行mvn测试。对于mvn测试来说,我应该设置值。在本例中,我的代码位于src/main/java中,我将其设置为: <testSourceDirectory>src/main/java</testSourceDirectory> 如何修复此问题?这不是标准的Maven用法,
mvn测试
。对于mvn测试
来说,我应该设置
值。在本例中,我的代码位于src/main/java中,我将其设置为:
<testSourceDirectory>src/main/java</testSourceDirectory>
如何修复此问题?这不是标准的Maven用法,但您可以使用排除轻松修复SonarQube分析。 sonar.exclusions=src/main/java/** 或 sonar.test.exclusions=src/main/java/** 取决于您希望源文件被视为测试文件还是主文件 但是正确的Maven方法是将您的测试放在src/test/java中,并打包您的测试:
我也面临同样的问题。最后,借助以下文档解决了此问题:- Q:ERROR:原因:文件[…]无法索引两次。 A:如果出现以下错误,您必须验证您的排除/包含 财产。请检查包含/排除模式是否产生 源文件和测试文件的不相交集 错误:原因:文件[…]无法索引两次。请检查一下 包含/排除模式为主模式和测试模式生成不相交集 文件示例可能如下所示:
sonar.sources=.
sonar.tests=.
sonar.test.inclusions=**/*Test*/**
sonar.exclusions=**/*Test*/**
如果项目不遵循默认的Maven目录结构,那么在项目的pom中,您可以明确指定源代码部分和测试部分的位置:
<properties>
<sonar.sources>src/main/foo</sonar.sources>
<sonar.tests>src/test/bar</sonar.tests>
</properties>
src/main/foo
src/试验/钢筋
在Android项目上运行sonarqube
Gradle任务时,我发现这个不能被索引两次
错误。该问题与存储在app/src/debug/assets
中的文件有关
我尝试设置sonar.sources
和sonar.tests
属性以使用不相交的集合,但无法解决错误
要修复我更改的错误,请执行以下操作:
property "sonar.coverage.exclusions", "**/assets/**, ..."
致:
为了完全忽略/assets/目录。可能会删除一些日志“已编制索引的文件”是一个相当稀少的信息。用准确的错误更新了问题。在
sonar.properties
中放入sonar.excludes=src/main/java/**
或sonar.test.excludes=src/main/java/**
,然后重新启动sonar服务器?但这对我来说仍然不起作用,我在pom.xml中看到了相同的异常,我在pom.xml中看到了src
,这就是issue@AnandRockzz你救了我的命。我在build.gradle文件中也有相同的配置:
property "sonar.coverage.exclusions", "**/assets/**, ..."
property "sonar.exclusions", "**/assets/**, ..."