Java 有没有一种不使用存储库就在项目上运行sonar的方法?

Java 有没有一种不使用存储库就在项目上运行sonar的方法?,java,sonarqube,Java,Sonarqube,在最近的一次声纳测试中,我们发现在我们的项目中总共有超过30k的违规行为。我被告知要花一些时间检查所有的拦截器/关键违规行为,并相应地修复它们。我的导师告诉我,要再次在项目上运行sonar,我必须首先提交我所做的更改。因为我是实习生,他们不想这么做。除了提交更改并运行sonar之外,还有其他方法吗 我正在使用Intellij,如果这有什么帮助的话,这些项目都是专业化的。您可以在您的机器中本地安装hudson+sonar,并在每次需要时运行它,无需提交代码 你需要花费相当多的时间来设置东西,但是有

在最近的一次声纳测试中,我们发现在我们的项目中总共有超过30k的违规行为。我被告知要花一些时间检查所有的拦截器/关键违规行为,并相应地修复它们。我的导师告诉我,要再次在项目上运行sonar,我必须首先提交我所做的更改。因为我是实习生,他们不想这么做。除了提交更改并运行sonar之外,还有其他方法吗


我正在使用Intellij,如果这有什么帮助的话,这些项目都是专业化的。

您可以在您的机器中本地安装hudson+sonar,并在每次需要时运行它,无需提交代码


你需要花费相当多的时间来设置东西,但是有很多很好的文档可以做到这一点。

Sonar内部使用PMD、Checkstyle等插件。你可以为eclipse安装PMD或Checkstyle插件,它将显示所有潜在的违规行为。在您签入之前,查看您已修复问题的程度将非常有用。

是的,请按照中的说明设置本地声纳服务器

完成后,您可以通过执行mvn sonar:sonar在localhost:9000上查看所有项目。不需要安装构建服务器,只要您的项目启用了maven,您就应该能够在本地sonar服务器运行时执行mvn sonar:sonar

您还可以安装eclipse插件(如果您使用eclipse),它将允许您进行实时代码分析,这样您就可以看到您何时解决了冲突。违规行为也会在代码中直接突出显示,这有很大帮助


对于一个简单的脚本或插件应该能够实现的东西来说,这是难以置信的解决方案。如果Git commit可以做到这一点,为什么另一个不能呢?我发现Sonar(Lint)插件与IJ配合得很好。也许游戏进行得很晚,但现在可以使用了。

您可以使用。您可以使用IDE对其进行配置,并授予其对SonarQube或SonarCloud的访问权限,并将每个项目配置为使用Sonar实例中使用的质量配置文件。因此,在编写代码时,IDE将显示代码气味等

与docker一起运行SonarQube服务器可能会有所帮助

安装sonarqube服务器 运行服务器 停止时恢复容器 安装声纳扫描仪 从扫描仪下载并安装声纳扫描仪

基本配置 在项目目录中创建一个名为
sonar project.properties
insider的文件 包括以下内容

sonar.projectKey=YourProjectKey
sonar.projectName=YourProjectName
sonar.projectVersion=1.0
sonar.sources=.
运行分析 访问结果 在浏览器中打开

使用默认用户名和密码登录(admin,admin)

工具书类

我使用localhost:9000进行安装,当我执行“mvn sonar:sonar”时,它总是失败,并出现此错误“”。我还尝试了eclipse插件,为eclipse安装了maven和sonar插件。当我尝试这样做时,我被困在将项目链接到sonar服务器上,它要求提供groupId,我不确定它是什么。[错误]无法执行goal org.apache.maven.plugins:maven dependency plugin:2.3:unpack(unpack pinkcommon tools)在pinkcommon ejb项目上:错误:将文件解包为:C:\cygwin\home\trunk sonar\webapps\pinkcommon\pinkcommon tools\target\classes到:C:\cygwin\home\trunk sonar\webapps\pinkcommon\pinkcommon ejb\target\classes[Error]org.codehaus.plexus.archiver.ArchiverException:源不能是目录。groupId在pom中,应该在标签的顶部附近。这应该是你运行声纳的pom:声纳。由于信息不多,我无法确定错误来自何处,但您始终可以尝试在子项目而不是父项目上运行mvn clean install sonar:sonar,以查看其是否有效,并可能隔离问题。webapps com.otc.web 1.73.1-SNAPSHOT com.otc.web otciq 1.73.1-SNAPSHOT pom这是在我的pom中,所以我输入com.otc.web作为groupId,otciq作为artifactId,对吧?愚蠢的事情就是不起作用,哈哈,伊玛用萨扬说的话(pmd),这很无聊,但现在它完成了工作,谢谢!!!他们中的任何一个会发现与声纳类似的违规行为吗?是的,他们两个都会发现类似的违规行为。伙计,这是挑选一些与声纳类似的违规行为,但是intellij、sonar和eclipse的来回操作太多了,谢谢!!!还有一个问题,pmd是否有任何类型的键盘快捷键?因为右键点击然后选择pmd会变得单调乏味,当我遇到大约5k阻塞器违规时:(这实际上是一个非常好的简明说明/步骤,可以让事情启动并运行。鉴于原始问题和答案已经有将近5年的历史了,我强烈建议改为选择此选项。谢谢Rashi
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube
docker start sonarqube
sonar.projectKey=YourProjectKey
sonar.projectName=YourProjectName
sonar.projectVersion=1.0
sonar.sources=.
cd /to/project/path
sonar-scanner