SonarQube Scanner 执行失败:java 无法被索引两次
SonarQube Scanner execution fails: java can't be indexed twice
我正在与:
- 声呐 7.3
- 扫描仪 3.2.0.1227
我有一个Gradle多模块
sonarqube-03
sonarqube-03-domain
sonarqube-03-repository
sonarqube-03-repository-impl
我在根项目 sonarqube-03
中只有一个 sonar-project.properties
文件,其内容如下:
# must be unique in a given SonarQube instance
sonar.projectKey=manolito-labs:sonarqube-03
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=sonarqube-03
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=src
sonar.tests=src
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
#Manolito
sonar.exclusions=build/**,\
bin/**,\
gradle/**,\
gradlew,\
gradlew.bat,\
*.gradle
sonar.java.binaries=.
#Multi-Module
sonar.modules=sonarqube-03-domain,\
sonarqube-03-repository,\
sonarqube-03-repository-impl
# Properties can obviously be overriden for
# each module - just prefix them with the module ID
sonarqube-03-domain.sonar.projectName=Module Sonarqube 03 Domain
sonarqube-03-repository.sonar.projectName=Module Sonarqube 03 Repository
sonarqube-03-repository-impl.sonar.projectName=Module Sonarqube 03 Repository Impl
当我在 Mac 上执行时:$SONARQUBE_SCANNER/bin/sonar-scanner
我进入了所有输出的决赛:
...
INFO: Source paths: src
INFO: Test paths: src
INFO: Source encoding: UTF-8, default locale: en_US
INFO: Load server rules
INFO: Load server rules (done) | time=162ms
INFO: Index files
INFO: Excluded sources:
INFO: build/**
INFO: bin/**
INFO: gradle/**
INFO: gradlew
INFO: gradlew.bat
INFO: *.gradle
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 11.684s
INFO: Final Memory: 11M/167M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
ERROR: File sonarqube-03-repository/src/main/java/com/manuel/jordan/repository/PersonRepository.java can't be indexed twice. Please check that inclusion/exclusion patterns produce disjoint sets for main and test files
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
如果我用调试模式执行($SONARQUBE_SCANNER/bin/sonar-scanner -X
)
我得到了:
...
13:31:07.362 INFO: Source paths: src
13:31:07.363 INFO: Test paths: src
13:31:07.363 INFO: Source encoding: UTF-8, default locale: en_US
13:31:07.370 INFO: Load server rules
13:31:07.480 DEBUG: GET 200 http://localhost:9000/api/rules/list.protobuf | time=109ms
13:31:07.510 INFO: Load server rules (done) | time=140ms
13:31:07.663 DEBUG: Declared extensions of language Python were converted to sonar.lang.patterns.py : **/*.py
13:31:07.663 DEBUG: Declared extensions of language CSS were converted to sonar.lang.patterns.css : **/*.css,**/*.less,**/*.scss
13:31:07.664 DEBUG: Declared extensions of language Go were converted to sonar.lang.patterns.go : **/*.go
13:31:07.664 DEBUG: Declared extensions of language Kotlin were converted to sonar.lang.patterns.kotlin : **/*.kt
13:31:07.664 DEBUG: Declared extensions of language JavaScript were converted to sonar.lang.patterns.js : **/*.js,**/*.jsx,**/*.vue
13:31:07.664 DEBUG: Declared extensions of language C# were converted to sonar.lang.patterns.cs : **/*.cs
13:31:07.664 DEBUG: Declared extensions of language Java were converted to sonar.lang.patterns.java : **/*.java,**/*.jav
13:31:07.665 DEBUG: Declared extensions of language Flex were converted to sonar.lang.patterns.flex : **/*.as
13:31:07.665 DEBUG: Declared extensions of language XML were converted to sonar.lang.patterns.xml : **/*.xml,**/*.xsd,**/*.xsl
13:31:07.665 DEBUG: Declared extensions of language PHP were converted to sonar.lang.patterns.php : **/*.php,**/*.php3,**/*.php4,**/*.php5,**/*.phtml,**/*.inc
13:31:07.666 DEBUG: Declared extensions of language TypeScript were converted to sonar.lang.patterns.ts : **/*.ts,**/*.tsx
13:31:07.680 INFO: Index files
13:31:07.683 INFO: Excluded sources:
13:31:07.684 INFO: build/**
13:31:07.684 INFO: bin/**
13:31:07.684 INFO: gradle/**
13:31:07.684 INFO: gradlew
13:31:07.684 INFO: gradlew.bat
13:31:07.684 INFO: *.gradle
13:31:07.702 DEBUG: 'src/main/java/com/manuel/jordan/repository/PersonRepository.java' indexed with language 'java'
13:31:07.779 INFO: ------------------------------------------------------------------------
13:31:07.779 INFO: EXECUTION FAILURE
13:31:07.779 INFO: ------------------------------------------------------------------------
13:31:07.779 INFO: Total time: 3.231s
13:31:07.846 INFO: Final Memory: 11M/167M
13:31:07.846 INFO: ------------------------------------------------------------------------
13:31:07.846 ERROR: Error during SonarQube Scanner execution
13:31:07.846 ERROR: File sonarqube-03-repository/src/main/java/com/manuel/jordan/repository/PersonRepository.java can't be indexed twice. Please check that inclusion/exclusion patterns produce disjoint sets for main and test files
对于两个输出,问题是:
ERROR: File
sonarqube-03-repository
/src/main/java
/com/manuel/jordan/repository/PersonRepository.java
can't be indexed twice.
Please check that inclusion/exclusion patterns produce disjoint sets for main and test files
因此,我当前的配置缺少什么?
您错误地配置了 sources
和 tests
:
sonar.sources=src
sonar.tests=src
他们指向同一个目录。您甚至可以在日志中阅读:
Please check that inclusion/exclusion patterns produce disjoint sets for main and test files
仅当测试 类 不在 src
目录中时才应指定 sonar.tests
。
如果您仍想扫描测试,那么您有两个选择:
- 将测试与来源放在一起。
- 创建一个新项目,将测试存储在
src
目录中。该项目应依赖原始来源。
最后,您需要的功能目前不受支持,但有一个 feature request (MMF-1451) - 请随时观看并投票。
我正在与:
- 声呐 7.3
- 扫描仪 3.2.0.1227
我有一个Gradle多模块
sonarqube-03
sonarqube-03-domain
sonarqube-03-repository
sonarqube-03-repository-impl
我在根项目 sonarqube-03
中只有一个 sonar-project.properties
文件,其内容如下:
# must be unique in a given SonarQube instance
sonar.projectKey=manolito-labs:sonarqube-03
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectName=sonarqube-03
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=src
sonar.tests=src
# Encoding of the source code. Default is default system encoding
sonar.sourceEncoding=UTF-8
#Manolito
sonar.exclusions=build/**,\
bin/**,\
gradle/**,\
gradlew,\
gradlew.bat,\
*.gradle
sonar.java.binaries=.
#Multi-Module
sonar.modules=sonarqube-03-domain,\
sonarqube-03-repository,\
sonarqube-03-repository-impl
# Properties can obviously be overriden for
# each module - just prefix them with the module ID
sonarqube-03-domain.sonar.projectName=Module Sonarqube 03 Domain
sonarqube-03-repository.sonar.projectName=Module Sonarqube 03 Repository
sonarqube-03-repository-impl.sonar.projectName=Module Sonarqube 03 Repository Impl
当我在 Mac 上执行时:$SONARQUBE_SCANNER/bin/sonar-scanner
我进入了所有输出的决赛:
...
INFO: Source paths: src
INFO: Test paths: src
INFO: Source encoding: UTF-8, default locale: en_US
INFO: Load server rules
INFO: Load server rules (done) | time=162ms
INFO: Index files
INFO: Excluded sources:
INFO: build/**
INFO: bin/**
INFO: gradle/**
INFO: gradlew
INFO: gradlew.bat
INFO: *.gradle
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
INFO: Total time: 11.684s
INFO: Final Memory: 11M/167M
INFO: ------------------------------------------------------------------------
ERROR: Error during SonarQube Scanner execution
ERROR: File sonarqube-03-repository/src/main/java/com/manuel/jordan/repository/PersonRepository.java can't be indexed twice. Please check that inclusion/exclusion patterns produce disjoint sets for main and test files
ERROR:
ERROR: Re-run SonarQube Scanner using the -X switch to enable full debug logging.
如果我用调试模式执行($SONARQUBE_SCANNER/bin/sonar-scanner -X
)
我得到了:
...
13:31:07.362 INFO: Source paths: src
13:31:07.363 INFO: Test paths: src
13:31:07.363 INFO: Source encoding: UTF-8, default locale: en_US
13:31:07.370 INFO: Load server rules
13:31:07.480 DEBUG: GET 200 http://localhost:9000/api/rules/list.protobuf | time=109ms
13:31:07.510 INFO: Load server rules (done) | time=140ms
13:31:07.663 DEBUG: Declared extensions of language Python were converted to sonar.lang.patterns.py : **/*.py
13:31:07.663 DEBUG: Declared extensions of language CSS were converted to sonar.lang.patterns.css : **/*.css,**/*.less,**/*.scss
13:31:07.664 DEBUG: Declared extensions of language Go were converted to sonar.lang.patterns.go : **/*.go
13:31:07.664 DEBUG: Declared extensions of language Kotlin were converted to sonar.lang.patterns.kotlin : **/*.kt
13:31:07.664 DEBUG: Declared extensions of language JavaScript were converted to sonar.lang.patterns.js : **/*.js,**/*.jsx,**/*.vue
13:31:07.664 DEBUG: Declared extensions of language C# were converted to sonar.lang.patterns.cs : **/*.cs
13:31:07.664 DEBUG: Declared extensions of language Java were converted to sonar.lang.patterns.java : **/*.java,**/*.jav
13:31:07.665 DEBUG: Declared extensions of language Flex were converted to sonar.lang.patterns.flex : **/*.as
13:31:07.665 DEBUG: Declared extensions of language XML were converted to sonar.lang.patterns.xml : **/*.xml,**/*.xsd,**/*.xsl
13:31:07.665 DEBUG: Declared extensions of language PHP were converted to sonar.lang.patterns.php : **/*.php,**/*.php3,**/*.php4,**/*.php5,**/*.phtml,**/*.inc
13:31:07.666 DEBUG: Declared extensions of language TypeScript were converted to sonar.lang.patterns.ts : **/*.ts,**/*.tsx
13:31:07.680 INFO: Index files
13:31:07.683 INFO: Excluded sources:
13:31:07.684 INFO: build/**
13:31:07.684 INFO: bin/**
13:31:07.684 INFO: gradle/**
13:31:07.684 INFO: gradlew
13:31:07.684 INFO: gradlew.bat
13:31:07.684 INFO: *.gradle
13:31:07.702 DEBUG: 'src/main/java/com/manuel/jordan/repository/PersonRepository.java' indexed with language 'java'
13:31:07.779 INFO: ------------------------------------------------------------------------
13:31:07.779 INFO: EXECUTION FAILURE
13:31:07.779 INFO: ------------------------------------------------------------------------
13:31:07.779 INFO: Total time: 3.231s
13:31:07.846 INFO: Final Memory: 11M/167M
13:31:07.846 INFO: ------------------------------------------------------------------------
13:31:07.846 ERROR: Error during SonarQube Scanner execution
13:31:07.846 ERROR: File sonarqube-03-repository/src/main/java/com/manuel/jordan/repository/PersonRepository.java can't be indexed twice. Please check that inclusion/exclusion patterns produce disjoint sets for main and test files
对于两个输出,问题是:
ERROR: File
sonarqube-03-repository
/src/main/java
/com/manuel/jordan/repository/PersonRepository.java
can't be indexed twice.
Please check that inclusion/exclusion patterns produce disjoint sets for main and test files
因此,我当前的配置缺少什么?
您错误地配置了 sources
和 tests
:
sonar.sources=src
sonar.tests=src
他们指向同一个目录。您甚至可以在日志中阅读:
Please check that inclusion/exclusion patterns produce disjoint sets for main and test files
仅当测试 类 不在 src
目录中时才应指定 sonar.tests
。
如果您仍想扫描测试,那么您有两个选择:
- 将测试与来源放在一起。
- 创建一个新项目,将测试存储在
src
目录中。该项目应依赖原始来源。
最后,您需要的功能目前不受支持,但有一个 feature request (MMF-1451) - 请随时观看并投票。