Sonar:对于未解析的未知项,您必须定义以下强制属性

20

我正在尝试在Java项目中运行SonarQube。我配置了Sonar属性文件并将其放置在项目目录中。运行sonar.bat时出现错误,要求定义必填参数。起初我以为我的属性文件有问题,但我已经尝试了我能想到的一切。

这是当前的属性文件:

# Required metadata
sonar.projectKey=_newtest2
sonar.projectName=NoSqlDataModeling
sonar.projectVersion=2.0

# Path to the parent source code directory.
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# Since SonarQube 4.2, this property is optional if sonar.modules is set. 
# If not set, SonarQube starts looking for source code from the directory containing 
# the sonar-project.properties file.
sonar.sources=D:/eclipse workspace/NoSqlDataModeling


#Comma-separated paths to directories containing the binary files (directories with class files, in the case of Java).
sonar.binaries=D:/eclipse workspace/NoSqlDataModeling/build/classes

#Comma-separated paths to files with third-party libraries (JAR files in the case of Java). Patterns #can be used.
sonar.libraries=D:/eclipse workspace/NoSqlDataModeling/WebContent/WEB-INF/lib/*.jar

#language used
sonar.language=java

# Encoding of the source code
sonar.sourceEncoding=UTF-8

# Additional parameters
sonar.my.property=value

这是错误信息

INFO: SonarQube Server 4.3.1
09:58:57.783 INFO  - Load batch settings
09:58:57.901 INFO  - User cache: C:\Users\Rohan.Kumar\.sonar\cache
09:58:57.907 INFO  - Install plugins
09:58:57.913 INFO  - Download sonar-maven-batch-plugin-4.3.1.jar
09:58:58.037 INFO  - Download sonar-findbugs-plugin-2.1.jar
09:58:58.436 INFO  - Download sonar-surefire-plugin-2.1.jar
09:58:58.540 INFO  - Download sonar-cpd-plugin-4.3.1.jar
09:58:58.870 INFO  - Download sonar-core-plugin-4.3.1.jar
09:58:58.956 INFO  - Download sonar-java-plugin-2.1.jar
09:58:59.097 INFO  - Download sonar-dbcleaner-plugin-4.3.1.jar
09:58:59.216 INFO  - Download sonar-jacoco-plugin-2.1.jar
09:58:59.331 INFO  - Download sonar-l10n-en-plugin-4.3.1.jar
09:58:59.350 INFO  - Download sonar-squid-java-plugin-2.1.jar
09:58:59.453 INFO  - Download sonar-email-notifications-plugin-4.3.1.jar
09:58:59.655 INFO  - Download sonar-design-plugin-4.3.1.jar
09:58:59.826 INFO  - Install JDBC driver
09:59:00.061 WARN  - H2 database should be used for evaluation purpose only
09:59:00.061 INFO  - Create JDBC datasource for jdbc:h2:tcp://localhost/sonar
09:59:00.784 INFO  - Initializing Hibernate
INFO: ------------------------------------------------------------------------
INFO: EXECUTION FAILURE
INFO: ------------------------------------------------------------------------
Total time: 7.521s
Final Memory: 5M/19M
INFO: ------------------------------------------------------------------------
ERROR: Error during Sonar runner execution
ERROR: Unable to execute Sonar
ERROR: Caused by: You must define the following mandatory properties for 'Unknow
n': sonar.projectKey, sonar.projectName, sonar.projectVersion, sonar.sources
ERROR:
ERROR: To see the full stack trace of the errors, re-run SonarQube Runner with t
he -e switch.
ERROR: Re-run SonarQube Runner using the -X switch to enable full debug logging.

我需要为所有的类文件和Java文件提供逗号分隔的路径吗?我要提供到什么深度的路径?不同的类文件位于build/classes/.../.../<4个包含类文件的不同文件夹>中。每次我更改项目密钥,因为我读到它必须是唯一的。


你看到这个网址 https://dev59.com/42Ei5IYBdhLWcg3whcgh 的答案了吗?它看起来和你遇到的问题一样。 - Nick Allen
Nick,是的,我有,并且我也修改了属性文件。还是不起作用。 - baconSoda
@Karthikeyan,感谢您的编辑。我是 Stack Overflow 的新手。 - baconSoda
嘿,尼克,不行,那个方法没用。我找到了另一个属性文件,它似乎运行良好。而且它也简单得多。但是我看不出这两个配置文件之间的区别。这是新的配置文件。如果你能指出我犯了什么错误,那就太好了。 - baconSoda

必需的元数据

sonar.projectKey=rohan_key2 sonar.projectName=NoSqlData sonar.projectVersion=1.2

包含源代码的目录路径,用逗号分隔(必需)

sonar.sources=src sonar.binaries=build/classes

语言

sonar.language=java

源文件的编码方式

sonar.sourceEncoding=UTF-8 #sonar.devcockpit.userAutoMapping=true #sonar.scm.enabled=true
- baconSoda
显示剩余2条评论
3个回答

16

如何上传项目到SonarQube:

1) 启动SonarQube。在浏览器中键入localhost:9000,即可看到。

2) 在命令提示符中,cd到您的项目目录 enter image description here

3) 确保您的项目根目录中有“sonar-project.properties”文件,并且已进行配置。如果您的项目没有“sonar-project.properties”文件,则会出现此错误 = Sonar Setup Undefined Mandatory Properties

我的VendingMachineEmulator应用程序的“sonar-project.properties”文件如下: enter image description here

4) 在命令提示符中,现在键入“C:\sonar-scanner\sonar-scanner-2.6.1\bin\sonar-scanner.bat”。或者,您也可以输入“C:\sonar-scanner\sonar-scanner-2.6.1\bin\sonar-runner.bat”。我不确定它们之间的区别。确保您当前所在的目录仍然是项目的主要文件夹。

5) 完成!刷新localhost:9000并检查项目是否已上传。


1
与上面相同,同时返回更多的Sonar属性sonar.projectKey=MyWebApp sonar.projectBaseDir=./MyWebApp sonar.projectName=MyWebApp sonar.projectVersion=1.0 sonar.sources=./src/main/java sonar.language=java sonar.java.binaries=. sonar.scm.disabled=True sonar.sourceEncoding=UTF-8 - Anurag_BEHS

6

如果在项目文件夹中运行 sonar-runner 时出现“执行失败”的情况,请添加

-Dproject.settings=./sonar-project.properties

由于无法找到设置文件,您必须明确地提到它

sonar-project.properties 是我的项目中的文件名,其中我已经给出了 projectKey、projectName

对于我来说, 使用上述参数运行 sonar runner。Sonar runner 在文件夹路径 sonar-plugin\agent\sonar-plugin-agent\sonar-qube-runner\bin\sonar-runner 中,或将其添加到环境路径中

sonar-runner -Dproject.settings=./sonar-project.properties


你太棒了,伙计。对于竹用户,我在“附加参数”中添加了值:-Dproject.settings=./sonar-project.properties。谢谢! - Nick N
我很高兴能够帮助。 - Satish Patro

4

请在存放sonar-project.properties文件的目录下运行sonar-scanner命令。

我曾经遇到过同样的问题,后来发现是因为我在不同的目录下运行了该命令。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接